From b9d86a6e8aad5710f3f05b0a0d107346d364a1e6 Mon Sep 17 00:00:00 2001 From: Mackenzie Clark Date: Sun, 23 Dec 2018 12:41:09 -0800 Subject: use the correct calling convention with extern "system" --- src/windows/mod.rs | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 7101a509e0..73c5989b87 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -50,7 +50,7 @@ pub type ino_t = u16; pub enum timezone {} pub type time64_t = i64; -pub type SOCKET = uintptr_t; +pub type SOCKET = ::uintptr_t; s! { // note this is the struct called stat64 in Windows. Not stat, nor stati64. @@ -308,19 +308,6 @@ extern { pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; pub fn raise(signum: c_int) -> c_int; - // winsock functions - 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: *mut sockaddr, namelen: c_int) -> c_int; - pub fn connect(s: SOCKET, name: *mut 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: *mut c_char, len: c_int, flags: c_int, to: *mut sockaddr, tolen: c_int) -> c_int; - pub fn setsockopt(s: SOCKET, level: c_int, optname: c_int, optval: *mut c_char, optlen: c_int) -> c_int; - pub fn socket(af: c_int, socket_type: c_int, protocol: c_int) -> SOCKET; - #[link_name = "_chmod"] pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int; #[link_name = "_wchmod"] @@ -403,6 +390,34 @@ extern { locale: *const wchar_t) -> *mut wchar_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(core_cvoid)] { pub use core::ffi::c_void; -- cgit v1.2.1