|
@@ -7,18 +7,20 @@ use crate::header::sys_socket::{sockaddr, socklen_t};
|
|
|
|
|
|
impl PalSocket for Sys {
|
|
|
unsafe fn accept(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int {
|
|
|
- // e(syscall!(ACCEPT, socket, address, address_len)) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(
|
|
|
+ SYS_ACCEPT,
|
|
|
+ socket as usize,
|
|
|
+ address as usize,
|
|
|
+ address_len as usize
|
|
|
+ )) as c_int
|
|
|
}
|
|
|
|
|
|
unsafe fn bind(socket: c_int, address: *const sockaddr, address_len: socklen_t) -> c_int {
|
|
|
- // e(syscall!(BIND, socket, address, address_len)) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(SYS_BIND, socket, address, address_len)) as c_int
|
|
|
}
|
|
|
|
|
|
unsafe fn connect(socket: c_int, address: *const sockaddr, address_len: socklen_t) -> c_int {
|
|
|
- // e(syscall!(CONNECT, socket, address, address_len)) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(SYS_CONNECT, socket, address, address_len)) as c_int
|
|
|
}
|
|
|
|
|
|
unsafe fn getpeername(
|
|
@@ -26,8 +28,7 @@ impl PalSocket for Sys {
|
|
|
address: *mut sockaddr,
|
|
|
address_len: *mut socklen_t,
|
|
|
) -> c_int {
|
|
|
- // e(syscall!(GETPEERNAME, socket, address, address_len)) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(SYS_GETPEERNAME, socket, address, address_len)) as c_int
|
|
|
}
|
|
|
|
|
|
unsafe fn getsockname(
|
|
@@ -35,8 +36,7 @@ impl PalSocket for Sys {
|
|
|
address: *mut sockaddr,
|
|
|
address_len: *mut socklen_t,
|
|
|
) -> c_int {
|
|
|
- // e(syscall!(GETSOCKNAME, socket, address, address_len)) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(SYS_GETSOCKNAME, socket, address, address_len)) as c_int
|
|
|
}
|
|
|
|
|
|
fn getsockopt(
|
|
@@ -46,22 +46,20 @@ impl PalSocket for Sys {
|
|
|
option_value: *mut c_void,
|
|
|
option_len: *mut socklen_t,
|
|
|
) -> c_int {
|
|
|
- unimplemented!()
|
|
|
- // e(unsafe {
|
|
|
- // syscall!(
|
|
|
- // GETSOCKOPT,
|
|
|
- // socket,
|
|
|
- // level,
|
|
|
- // option_name,
|
|
|
- // option_value,
|
|
|
- // option_len
|
|
|
- // )
|
|
|
- // }) as c_int
|
|
|
+ e(unsafe {
|
|
|
+ syscall!(
|
|
|
+ SYS_GETSOCKOPT,
|
|
|
+ socket,
|
|
|
+ level,
|
|
|
+ option_name,
|
|
|
+ option_value,
|
|
|
+ option_len
|
|
|
+ )
|
|
|
+ }) as c_int
|
|
|
}
|
|
|
|
|
|
fn listen(socket: c_int, backlog: c_int) -> c_int {
|
|
|
- // e(unsafe { syscall!(LISTEN, socket, backlog) }) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(unsafe { syscall!(SYS_LISTEN, socket, backlog) }) as c_int
|
|
|
}
|
|
|
|
|
|
unsafe fn recvfrom(
|
|
@@ -72,16 +70,15 @@ impl PalSocket for Sys {
|
|
|
address: *mut sockaddr,
|
|
|
address_len: *mut socklen_t,
|
|
|
) -> ssize_t {
|
|
|
- // e(syscall!(
|
|
|
- // RECVFROM,
|
|
|
- // socket,
|
|
|
- // buf,
|
|
|
- // len,
|
|
|
- // flags,
|
|
|
- // address,
|
|
|
- // address_len
|
|
|
- // )) as ssize_t
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(
|
|
|
+ SYS_RECVFROM,
|
|
|
+ socket,
|
|
|
+ buf,
|
|
|
+ len,
|
|
|
+ flags,
|
|
|
+ address,
|
|
|
+ address_len
|
|
|
+ )) as ssize_t
|
|
|
}
|
|
|
|
|
|
unsafe fn sendto(
|
|
@@ -92,10 +89,9 @@ impl PalSocket for Sys {
|
|
|
dest_addr: *const sockaddr,
|
|
|
dest_len: socklen_t,
|
|
|
) -> ssize_t {
|
|
|
- // e(syscall!(
|
|
|
- // SENDTO, socket, buf, len, flags, dest_addr, dest_len
|
|
|
- // )) as ssize_t
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(
|
|
|
+ SYS_SENDTO, socket, buf, len, flags, dest_addr, dest_len
|
|
|
+ )) as ssize_t
|
|
|
}
|
|
|
|
|
|
fn setsockopt(
|
|
@@ -105,27 +101,24 @@ impl PalSocket for Sys {
|
|
|
option_value: *const c_void,
|
|
|
option_len: socklen_t,
|
|
|
) -> c_int {
|
|
|
- // e(unsafe {
|
|
|
- // syscall!(
|
|
|
- // SETSOCKOPT,
|
|
|
- // socket,
|
|
|
- // level,
|
|
|
- // option_name,
|
|
|
- // option_value,
|
|
|
- // option_len
|
|
|
- // )
|
|
|
- // }) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(unsafe {
|
|
|
+ syscall!(
|
|
|
+ SYS_SETSOCKOPT,
|
|
|
+ socket,
|
|
|
+ level,
|
|
|
+ option_name,
|
|
|
+ option_value,
|
|
|
+ option_len
|
|
|
+ )
|
|
|
+ }) as c_int
|
|
|
}
|
|
|
|
|
|
fn shutdown(socket: c_int, how: c_int) -> c_int {
|
|
|
- // e(unsafe { syscall!(SHUTDOWN, socket, how) }) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(unsafe { syscall!(SYS_SHUTDOWN, socket, how) }) as c_int
|
|
|
}
|
|
|
|
|
|
unsafe fn socket(domain: c_int, kind: c_int, protocol: c_int) -> c_int {
|
|
|
- // e(syscall!(SOCKET, domain, kind, protocol)) as c_int
|
|
|
- unimplemented!()
|
|
|
+ e(syscall!(SYS_SOCKET, domain, kind, protocol)) as c_int
|
|
|
}
|
|
|
|
|
|
fn socketpair(domain: c_int, kind: c_int, protocol: c_int, sv: &mut [c_int; 2]) -> c_int {
|