summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMackenzie Clark <mackenzie.a.z.c@gmail.com>2018-12-22 23:37:53 -0800
committerMackenzie Clark <mackenzie.a.z.c@gmail.com>2018-12-22 23:37:53 -0800
commita79a73f8bf9a68a2fdfc8b7648d3ac4a0536f95c (patch)
tree8668a429122cc7335188e4da52669fa290c2312b
parentc1ae35dad55ce8c9226979ba12340409705e5bc4 (diff)
downloadrust-libc-a79a73f8bf9a68a2fdfc8b7648d3ac4a0536f95c.tar.gz
add some socket functions and a SOCKET type
-rw-r--r--src/windows/mod.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/windows/mod.rs b/src/windows/mod.rs
index e4db343ec2..7101a509e0 100644
--- a/src/windows/mod.rs
+++ b/src/windows/mod.rs
@@ -50,6 +50,8 @@ pub type ino_t = u16;
pub enum timezone {}
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 {
@@ -93,6 +95,11 @@ s! {
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;
@@ -301,6 +308,19 @@ 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"]