Skip to content

Commit b9d86a6

Browse files
committed
use the correct calling convention with extern "system"
1 parent a79a73f commit b9d86a6

File tree

1 file changed

+29
-14
lines changed

1 file changed

+29
-14
lines changed

src/windows/mod.rs

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub type ino_t = u16;
5050
pub enum timezone {}
5151
pub type time64_t = i64;
5252

53-
pub type SOCKET = uintptr_t;
53+
pub type SOCKET = ::uintptr_t;
5454

5555
s! {
5656
// note this is the struct called stat64 in Windows. Not stat, nor stati64.
@@ -308,19 +308,6 @@ extern {
308308
pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t;
309309
pub fn raise(signum: c_int) -> c_int;
310310

311-
// winsock functions
312-
pub fn listen(s: SOCKET, backlog: c_int) -> c_int;
313-
pub fn accept(s: SOCKET, addr: *mut sockaddr, addrlen: *mut c_int) -> SOCKET;
314-
pub fn bind(s: SOCKET, name: *mut sockaddr, namelen: c_int) -> c_int;
315-
pub fn connect(s: SOCKET, name: *mut sockaddr, namelen: c_int) -> c_int;
316-
pub fn getpeername(s: SOCKET, name: *mut sockaddr, nameln: *mut c_int) -> c_int;
317-
pub fn getsockname(s: SOCKET, name: *mut sockaddr, nameln: *mut c_int) -> c_int;
318-
pub fn getsockopt(s: SOCKET, level: c_int, optname: c_int, optval: *mut c_char, optlen: *mut c_int) -> c_int;
319-
pub fn recvfrom(s: SOCKET, buf: *mut c_char, len: c_int, flags: c_int, from: *mut sockaddr, fromlen: *mut c_int) -> c_int;
320-
pub fn sendto(s: SOCKET, buf: *mut c_char, len: c_int, flags: c_int, to: *mut sockaddr, tolen: c_int) -> c_int;
321-
pub fn setsockopt(s: SOCKET, level: c_int, optname: c_int, optval: *mut c_char, optlen: c_int) -> c_int;
322-
pub fn socket(af: c_int, socket_type: c_int, protocol: c_int) -> SOCKET;
323-
324311
#[link_name = "_chmod"]
325312
pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int;
326313
#[link_name = "_wchmod"]
@@ -403,6 +390,34 @@ extern {
403390
locale: *const wchar_t) -> *mut wchar_t;
404391
}
405392

393+
extern "system" {
394+
pub fn listen(s: SOCKET, backlog: ::c_int) -> ::c_int;
395+
pub fn accept(s: SOCKET, addr: *mut ::sockaddr,
396+
addrlen: *mut ::c_int) -> SOCKET;
397+
pub fn bind(s: SOCKET, name: *const ::sockaddr,
398+
namelen: ::c_int) -> ::c_int;
399+
pub fn connect(s: SOCKET, name: *const ::sockaddr,
400+
namelen: ::c_int) -> ::c_int;
401+
pub fn getpeername(s: SOCKET, name: *mut ::sockaddr,
402+
nameln: *mut ::c_int) -> ::c_int;
403+
pub fn getsockname(s: SOCKET, name: *mut ::sockaddr,
404+
nameln: *mut ::c_int) -> ::c_int;
405+
pub fn getsockopt(s: SOCKET, level: ::c_int, optname: ::c_int,
406+
optval: *mut ::c_char,
407+
optlen: *mut ::c_int) -> ::c_int;
408+
pub fn recvfrom(s: SOCKET, buf: *mut ::c_char, len: ::c_int,
409+
flags: ::c_int, from: *mut ::sockaddr,
410+
fromlen: *mut ::c_int) -> ::c_int;
411+
pub fn sendto(s: SOCKET, buf: *const ::c_char, len: ::c_int,
412+
flags: ::c_int, to: *const ::sockaddr,
413+
tolen: ::c_int) -> ::c_int;
414+
pub fn setsockopt(s: SOCKET, level: ::c_int, optname: ::c_int,
415+
optval: *const ::c_char,
416+
optlen: ::c_int) -> ::c_int;
417+
pub fn socket(af: ::c_int, socket_type: ::c_int,
418+
protocol: ::c_int) -> SOCKET;
419+
}
420+
406421
cfg_if! {
407422
if #[cfg(core_cvoid)] {
408423
pub use core::ffi::c_void;

0 commit comments

Comments
 (0)