@@ -50,6 +50,8 @@ pub type ino_t = u16;
50
50
pub enum timezone { }
51
51
pub type time64_t = i64 ;
52
52
53
+ pub type SOCKET = uintptr_t ;
54
+
53
55
s ! {
54
56
// note this is the struct called stat64 in Windows. Not stat, nor stati64.
55
57
pub struct stat {
93
95
pub tv_sec: time_t,
94
96
pub tv_nsec: c_long,
95
97
}
98
+
99
+ pub struct sockaddr {
100
+ pub sa_family: c_ushort,
101
+ pub sa_data: [ c_char; 14 ] ,
102
+ }
96
103
}
97
104
98
105
pub const INT_MIN : c_int = -2147483648 ;
@@ -301,6 +308,19 @@ extern {
301
308
pub fn signal ( signum : c_int , handler : sighandler_t ) -> sighandler_t ;
302
309
pub fn raise ( signum : c_int ) -> c_int ;
303
310
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
+
304
324
#[ link_name = "_chmod" ]
305
325
pub fn chmod ( path : * const c_char , mode : :: c_int ) -> :: c_int ;
306
326
#[ link_name = "_wchmod" ]
0 commit comments