From 7157879ab531e0fe935b5d5599c8d447fe56efc5 Mon Sep 17 00:00:00 2001 From: Kenny Kerr Date: Mon, 10 Apr 2023 09:33:47 -0500 Subject: [PATCH] windows-targets --- core/Cargo.toml | 3 +++ core/src/thread_parker/windows/bindings.rs | 15 +++++---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/core/Cargo.toml b/core/Cargo.toml index 7ed5f2ab..00c322a1 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -22,6 +22,9 @@ libc = "0.2.95" [target.'cfg(target_os = "redox")'.dependencies] redox_syscall = "0.3" +[target.'cfg(windows)'.dependencies] +windows-targets = "0.48.0" + [features] nightly = [] deadlock_detection = ["petgraph", "thread-id", "backtrace"] diff --git a/core/src/thread_parker/windows/bindings.rs b/core/src/thread_parker/windows/bindings.rs index 5e1205a5..3c37dfac 100644 --- a/core/src/thread_parker/windows/bindings.rs +++ b/core/src/thread_parker/windows/bindings.rs @@ -24,13 +24,8 @@ pub type WaitOnAddress = unsafe extern "system" fn( ) -> BOOL; pub type WakeByAddressSingle = unsafe extern "system" fn(Address: *const std::ffi::c_void); -#[link(name = "kernel32")] -extern "system" { - pub fn GetLastError() -> u32; - pub fn CloseHandle(hObject: HANDLE) -> BOOL; - - pub fn GetModuleHandleA(lpModuleName: *const u8) -> HINSTANCE; - pub fn GetProcAddress(hModule: HINSTANCE, lpProcName: *const u8) -> FARPROC; - - pub fn Sleep(dwMilliseconds: u32); -} +windows_targets::link!("kernel32.dll" "system" fn GetLastError() -> u32); +windows_targets::link!("kernel32.dll" "system" fn CloseHandle(hObject: HANDLE) -> BOOL); +windows_targets::link!("kernel32.dll" "system" fn GetModuleHandleA(lpModuleName: *const u8) -> HINSTANCE); +windows_targets::link!("kernel32.dll" "system" fn GetProcAddress(hModule: HINSTANCE, lpProcName: *const u8) -> FARPROC); +windows_targets::link!("kernel32.dll" "system" fn Sleep(dwMilliseconds: u32) -> ());