summaryrefslogtreecommitdiffstats
path: root/vendor/cc/src/windows_sys.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:47:55 +0000
commit2aadc03ef15cb5ca5cc2af8a7c08e070742f0ac4 (patch)
tree033cc839730fda84ff08db877037977be94e5e3a /vendor/cc/src/windows_sys.rs
parentInitial commit. (diff)
downloadcargo-upstream.tar.xz
cargo-upstream.zip
Adding upstream version 0.70.1+ds1.upstream/0.70.1+ds1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/cc/src/windows_sys.rs')
-rw-r--r--vendor/cc/src/windows_sys.rs198
1 files changed, 198 insertions, 0 deletions
diff --git a/vendor/cc/src/windows_sys.rs b/vendor/cc/src/windows_sys.rs
new file mode 100644
index 0000000..ee4704d
--- /dev/null
+++ b/vendor/cc/src/windows_sys.rs
@@ -0,0 +1,198 @@
+// This file is autogenerated.
+//
+// To add bindings, edit windows_sys.lst then run:
+//
+// ```
+// cd generate-windows-sys/
+// cargo run
+// ```
+// Bindings generated by `windows-bindgen` 0.49.0
+
+#![allow(
+ non_snake_case,
+ non_upper_case_globals,
+ non_camel_case_types,
+ dead_code,
+ clippy::all
+)]
+#[link(name = "advapi32")]
+extern "system" {
+ pub fn RegCloseKey(hkey: HKEY) -> WIN32_ERROR;
+}
+#[link(name = "advapi32")]
+extern "system" {
+ pub fn RegEnumKeyExW(
+ hkey: HKEY,
+ dwindex: u32,
+ lpname: PWSTR,
+ lpcchname: *mut u32,
+ lpreserved: *const u32,
+ lpclass: PWSTR,
+ lpcchclass: *mut u32,
+ lpftlastwritetime: *mut FILETIME,
+ ) -> WIN32_ERROR;
+}
+#[link(name = "advapi32")]
+extern "system" {
+ pub fn RegOpenKeyExW(
+ hkey: HKEY,
+ lpsubkey: PCWSTR,
+ uloptions: u32,
+ samdesired: REG_SAM_FLAGS,
+ phkresult: *mut HKEY,
+ ) -> WIN32_ERROR;
+}
+#[link(name = "advapi32")]
+extern "system" {
+ pub fn RegQueryValueExW(
+ hkey: HKEY,
+ lpvaluename: PCWSTR,
+ lpreserved: *const u32,
+ lptype: *mut REG_VALUE_TYPE,
+ lpdata: *mut u8,
+ lpcbdata: *mut u32,
+ ) -> WIN32_ERROR;
+}
+#[link(name = "kernel32")]
+extern "system" {
+ pub fn CreatePipe(
+ hreadpipe: *mut HANDLE,
+ hwritepipe: *mut HANDLE,
+ lppipeattributes: *const SECURITY_ATTRIBUTES,
+ nsize: u32,
+ ) -> BOOL;
+}
+#[link(name = "ole32")]
+extern "system" {
+ pub fn CoCreateInstance(
+ rclsid: *const GUID,
+ punkouter: IUnknown,
+ dwclscontext: CLSCTX,
+ riid: *const GUID,
+ ppv: *mut *mut ::core::ffi::c_void,
+ ) -> HRESULT;
+}
+#[link(name = "ole32")]
+extern "system" {
+ pub fn CoInitializeEx(pvreserved: *const ::core::ffi::c_void, dwcoinit: COINIT) -> HRESULT;
+}
+#[link(name = "oleaut32")]
+extern "system" {
+ pub fn SysFreeString(bstrstring: BSTR) -> ();
+}
+#[link(name = "oleaut32")]
+extern "system" {
+ pub fn SysStringLen(pbstr: BSTR) -> u32;
+}
+pub type ADVANCED_FEATURE_FLAGS = u16;
+pub type BOOL = i32;
+pub type BSTR = *const u16;
+pub type CLSCTX = u32;
+pub const CLSCTX_ALL: CLSCTX = 23u32;
+pub type COINIT = i32;
+pub const COINIT_MULTITHREADED: COINIT = 0i32;
+pub const ERROR_NO_MORE_ITEMS: WIN32_ERROR = 259u32;
+pub const ERROR_SUCCESS: WIN32_ERROR = 0u32;
+#[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 GUID {
+ pub data1: u32,
+ pub data2: u16,
+ pub data3: u16,
+ pub data4: [u8; 8],
+}
+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(),
+ }
+ }
+}
+impl ::core::marker::Copy for GUID {}
+impl ::core::clone::Clone for GUID {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type HANDLE = *mut ::core::ffi::c_void;
+pub type HKEY = *mut ::core::ffi::c_void;
+pub const HKEY_LOCAL_MACHINE: HKEY = invalid_mut(-2147483646i32 as _);
+pub type HRESULT = i32;
+pub const INVALID_HANDLE_VALUE: HANDLE = invalid_mut(-1i32 as _);
+pub type IUnknown = *mut ::core::ffi::c_void;
+pub const KEY_READ: REG_SAM_FLAGS = 131097u32;
+pub const KEY_WOW64_32KEY: REG_SAM_FLAGS = 512u32;
+pub type PCWSTR = *const u16;
+pub type PWSTR = *mut u16;
+pub type REG_SAM_FLAGS = u32;
+pub const REG_SZ: REG_VALUE_TYPE = 1u32;
+pub type REG_VALUE_TYPE = u32;
+#[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 SECURITY_ATTRIBUTES {
+ pub nLength: u32,
+ pub lpSecurityDescriptor: *mut ::core::ffi::c_void,
+ pub bInheritHandle: BOOL,
+}
+impl ::core::marker::Copy for SECURITY_ATTRIBUTES {}
+impl ::core::clone::Clone for SECURITY_ATTRIBUTES {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub const S_FALSE: HRESULT = 1i32;
+pub const S_OK: HRESULT = 0i32;
+pub type WIN32_ERROR = u32;
+
+/// Adapted from
+/// [`core::ptr::invalid_mut()`](https://doc.rust-lang.org/src/core/ptr/mod.rs.html#600-607).
+///
+/// This function should actually use `core::mem::transmute` but due to msrv
+/// we use `as` casting instead.
+///
+/// Once msrv is bumped to 1.56, replace this with `core::mem::transmute` since
+/// it is const stablised in 1.56
+///
+/// NOTE that once supports `strict_provenance` we would also have to update
+/// this.
+const fn invalid_mut<T>(addr: usize) -> *mut T {
+ addr as *mut T
+}