Skip to content
Snippets Groups Projects
Commit a79a73f8 authored by Mackenzie Clark's avatar Mackenzie Clark
Browse files

add some socket functions and a SOCKET type

parent c1ae35da
No related branches found
No related tags found
No related merge requests found
...@@ -50,6 +50,8 @@ pub type ino_t = u16; ...@@ -50,6 +50,8 @@ pub type ino_t = u16;
pub enum timezone {} pub enum timezone {}
pub type time64_t = i64; pub type time64_t = i64;
pub type SOCKET = uintptr_t;
s! { s! {
// note this is the struct called stat64 in Windows. Not stat, nor stati64. // note this is the struct called stat64 in Windows. Not stat, nor stati64.
pub struct stat { pub struct stat {
...@@ -93,6 +95,11 @@ s! { ...@@ -93,6 +95,11 @@ s! {
pub tv_sec: time_t, pub tv_sec: time_t,
pub tv_nsec: c_long, 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; pub const INT_MIN: c_int = -2147483648;
...@@ -301,6 +308,19 @@ extern { ...@@ -301,6 +308,19 @@ extern {
pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t;
pub fn raise(signum: c_int) -> c_int; 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"] #[link_name = "_chmod"]
pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int; pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int;
#[link_name = "_wchmod"] #[link_name = "_wchmod"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment