summaryrefslogtreecommitdiffstats
path: root/vendor/hermit-abi/src
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:41 +0000
commit4f9fe856a25ab29345b90e7725509e9ee38a37be (patch)
treee4ffd8a9374cae7b21f7cbfb352927e0e074aff6 /vendor/hermit-abi/src
parentAdding upstream version 1.68.2+dfsg1. (diff)
downloadrustc-upstream/1.69.0+dfsg1.tar.xz
rustc-upstream/1.69.0+dfsg1.zip
Adding upstream version 1.69.0+dfsg1.upstream/1.69.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/hermit-abi/src')
-rw-r--r--vendor/hermit-abi/src/net.rs232
-rw-r--r--vendor/hermit-abi/src/net_old.rs302
2 files changed, 534 insertions, 0 deletions
diff --git a/vendor/hermit-abi/src/net.rs b/vendor/hermit-abi/src/net.rs
new file mode 100644
index 000000000..05ee2ca58
--- /dev/null
+++ b/vendor/hermit-abi/src/net.rs
@@ -0,0 +1,232 @@
+#![allow(nonstandard_style)]
+
+pub const AF_INET: i32 = 0;
+pub const AF_INET6: i32 = 1;
+pub const IPPROTO_IP: i32 = 0;
+pub const IPPROTO_IPV6: i32 = 41;
+pub const IPPROTO_TCP: i32 = 6;
+pub const IPV6_ADD_MEMBERSHIP: i32 = 12;
+pub const IPV6_DROP_MEMBERSHIP: i32 = 13;
+pub const IPV6_MULTICAST_LOOP: i32 = 19;
+pub const IPV6_V6ONLY: i32 = 27;
+pub const IP_TTL: i32 = 2;
+pub const IP_MULTICAST_TTL: i32 = 5;
+pub const IP_MULTICAST_LOOP: i32 = 7;
+pub const IP_ADD_MEMBERSHIP: i32 = 3;
+pub const IP_DROP_MEMBERSHIP: i32 = 4;
+pub const SHUT_RD: i32 = 0;
+pub const SHUT_RDWR: i32 = 2;
+pub const SHUT_WR: i32 = 1;
+pub const SOCK_DGRAM: i32 = 2;
+pub const SOCK_STREAM: i32 = 1;
+pub const SOL_SOCKET: i32 = 4095;
+pub const SO_BROADCAST: i32 = 32;
+pub const SO_ERROR: i32 = 4103;
+pub const SO_RCVTIMEO: i32 = 4102;
+pub const SO_REUSEADDR: i32 = 4;
+pub const SO_SNDTIMEO: i32 = 4101;
+pub const SO_LINGER: i32 = 128;
+pub const TCP_NODELAY: i32 = 1;
+pub const MSG_PEEK: i32 = 1;
+pub const FIONBIO: i32 = 0x8008667eu32 as i32;
+pub const EAI_NONAME: i32 = -2200;
+pub const EAI_SERVICE: i32 = -2201;
+pub const EAI_FAIL: i32 = -2202;
+pub const EAI_MEMORY: i32 = -2203;
+pub const EAI_FAMILY: i32 = -2204;
+pub type sa_family_t = u8;
+pub type socklen_t = u32;
+pub type in_addr_t = u32;
+pub type in_port_t = u16;
+pub type nfds_t = usize;
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+ pub s_addr: u32,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in6_addr {
+ pub s6_addr: [u8; 16],
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr {
+ pub sa_len: u8,
+ pub sa_family: sa_family_t,
+ pub sa_data: [u8; 14],
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+ pub sin_len: u8,
+ pub sin_family: sa_family_t,
+ pub sin_port: in_port_t,
+ pub sin_addr: in_addr,
+ pub sin_zero: [u8; 8],
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in6 {
+ pub sin6_family: sa_family_t,
+ pub sin6_port: in_port_t,
+ pub sin6_addr: in6_addr,
+ pub sin6_flowinfo: u32,
+ pub sin6_scope_id: u32,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+ pub imr_multiaddr: in_addr,
+ pub imr_interface: in_addr,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_mreq {
+ pub ipv6mr_multiaddr: in6_addr,
+ pub ipv6mr_interface: u32,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct addrinfo {
+ pub ai_flags: i32,
+ pub ai_family: i32,
+ pub ai_socktype: i32,
+ pub ai_protocol: i32,
+ pub ai_addrlen: socklen_t,
+ pub ai_addr: *mut sockaddr,
+ pub ai_canonname: *mut u8,
+ pub ai_next: *mut addrinfo,
+}
+
+extern "C" {
+ #[link_name = "sys_accept"]
+ pub fn accept(s: i32, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32;
+
+ #[link_name = "sys_bind"]
+ pub fn bind(s: i32, name: *const sockaddr, namelen: socklen_t) -> i32;
+
+ #[link_name = "sys_connect"]
+ pub fn connect(s: i32, name: *const sockaddr, namelen: socklen_t) -> i32;
+
+ #[link_name = "sys_close"]
+ pub fn close(s: i32) -> i32;
+
+ #[link_name = "sys_dup"]
+ pub fn dup(s: i32) -> i32;
+
+ #[link_name = "sys:getpeername"]
+ pub fn getpeername(s: i32, name: *mut sockaddr, namelen: *mut socklen_t) -> i32;
+
+ #[link_name = "sys_getsockname"]
+ pub fn getsockname(s: i32, name: *mut sockaddr, namelen: *mut socklen_t) -> i32;
+
+ #[link_name = "sys_getsockopt"]
+ pub fn getsockopt(
+ s: i32,
+ level: i32,
+ optname: i32,
+ optval: *mut c_void,
+ optlen: *mut socklen_t,
+ ) -> i32;
+
+ #[link_name = "sys_setsockopt"]
+ pub fn setsockopt(
+ s: i32,
+ level: i32,
+ optname: i32,
+ optval: *const c_void,
+ optlen: socklen_t,
+ ) -> i32;
+
+ #[link_name = "sys_ioctl"]
+ pub fn ioctl(s: i32, cmd: c_long, argp: *mut c_void) -> i32;
+
+ #[link_name = "sys_listen"]
+ pub fn listen(s: i32, backlog: c_int) -> i32;
+
+ #[link_name = "sys_poll"]
+ pub fn pollfd(fds: *mut pollfd, nfds: nfds_t, timeout: i32);
+
+ #[link_name = "sys_recv"]
+ pub fn recv(s: c_int, mem: *mut c_void, len: size_t, flags: c_int) -> isize;
+
+ #[link_name = "sys_read"]
+ pub fn read(s: c_int, mem: *mut c_void, len: size_t) -> isize;
+
+ #[link_name = "sys_readv"]
+ pub fn readv(s: c_int, bufs: *const iovec, bufcnt: c_int) -> isize;
+
+ #[link_name = "sys_recvfrom"]
+ pub fn recvfrom(
+ s: c_int,
+ mem: *mut c_void,
+ len: size_t,
+ flags: c_int,
+ from: *mut sockaddr,
+ fromlen: *mut socklen_t,
+ ) -> isize;
+
+ #[link_name = "sys_send"]
+ pub fn send(s: i32, mem: *const c_void, len: usize, flags: i32) -> isize;
+
+ #[link_name = "sys_sendmsg"]
+ pub fn sendmsg(s: c_int, message: *const msghdr, flags: c_int) -> isize;
+
+ #[link_name = "sys_sendto"]
+ pub fn sendto(
+ s: c_int,
+ mem: *const c_void,
+ len: size_t,
+ flags: c_int,
+ to: *const sockaddr,
+ tolen: socklen_t,
+ ) -> ssize_t;
+
+ #[link_name = "sys_shutdown"]
+ pub fn shutdown(s: i32, how: i32) -> i32;
+
+ #[link_name = "sys_socket"]
+ pub fn socket(domain: i32, type_: i32, protocol: i32) -> i32;
+
+ #[link_name = "sys_write"]
+ pub fn write(s: c_int, mem: *const c_void, len: size_t) -> ssize_t;
+
+ #[link_name = "sys_writev"]
+ pub fn writev(s: c_int, bufs: *const iovec, bufcnt: c_int) -> ssize_t;
+
+ #[link_name = "sys_freeaddrinfo"]
+ pub fn freeaddrinfo(ai: *mut addrinfo);
+
+ #[link_name = "sys_getaddrinfo"]
+ pub fn getaddrinfo(
+ nodename: *const u8,
+ servname: *const u8,
+ hints: *const addrinfo,
+ res: *mut *mut addrinfo,
+ ) -> i32;
+
+ #[link_name = "sys_select"]
+ pub fn select(
+ maxfdp1: i32,
+ readset: *mut fd_set,
+ writeset: *mut fd_set,
+ exceptset: *mut fd_set,
+ timeout: *mut timeval,
+ ) -> i32;
+
+ #[link_name = "sys_pool"]
+ pub fn poll(
+ fds: *mut pollfd,
+ nfds: nfds_t,
+ timeout: i32
+ ) -> i32;
+}
diff --git a/vendor/hermit-abi/src/net_old.rs b/vendor/hermit-abi/src/net_old.rs
new file mode 100644
index 000000000..93bfd55f0
--- /dev/null
+++ b/vendor/hermit-abi/src/net_old.rs
@@ -0,0 +1,302 @@
+#![allow(nonstandard_style)]
+use crate::errno::EINVAL;
+use crate::FileDescriptor;
+use libc::{c_char, c_int, c_uint, c_void, size_t, ssize_t};
+
+extern "C" {
+ fn sys_hermit_socket(domain: i32, type_: i32, protocol: i32) -> FileDescriptor;
+ fn sys_hermit_accept(
+ s: FileDescriptor,
+ addr: *mut sockaddr,
+ addrlen: *mut socklen_t,
+ ) -> FileDescriptor;
+ fn sys_hermit_bind(s: FileDescriptor, name: *const sockaddr, namelen: socklen_t) -> i32;
+ fn sys_hermit_listen(s: FileDescriptor, backlog: i32) -> i32;
+ fn sys_hermit_shutdown(s: FileDescriptor, how: i32) -> i32;
+ fn sys_hermit_getpeername(
+ s: FileDescriptor,
+ name: *mut sockaddr,
+ namelen: *mut socklen_t,
+ ) -> i32;
+ fn sys_hermit_getsockname(
+ s: FileDescriptor,
+ name: *mut sockaddr,
+ namelen: *mut socklen_t,
+ ) -> i32;
+ fn sys_hermit_getsockopt(
+ s: FileDescriptor,
+ level: i32,
+ optname: i32,
+ optval: *mut c_void,
+ optlen: *const socklen_t,
+ ) -> i32;
+ fn sys_hermit_setsockopt(
+ s: FileDescriptor,
+ level: i32,
+ optname: i32,
+ optval: *const c_void,
+ optlen: socklen_t,
+ ) -> i32;
+ fn sys_hermit_connect(s: FileDescriptor, name: *const sockaddr, namelen: socklen_t) -> i32;
+ fn sys_hermit_getaddrinfo(
+ nodename: *const c_char,
+ servname: *const i8,
+ hints: *const addrinfo,
+ res: *mut *mut addrinfo,
+ ) -> i32;
+}
+
+pub const AF_INET: i32 = 10;
+pub const AF_INET6: i32 = 2;
+pub const IPPROTO_IP: i32 = 0;
+pub const IPPROTO_IPV6: i32 = 41;
+pub const IPPROTO_TCP: i32 = 6;
+pub const IPV6_ADD_MEMBERSHIP: i32 = 12;
+pub const IPV6_DROP_MEMBERSHIP: i32 = 13;
+pub const IPV6_MULTICAST_LOOP: i32 = 19;
+pub const IPV6_V6ONLY: i32 = 27;
+pub const IP_TTL: i32 = 2;
+pub const IP_MULTICAST_TTL: i32 = 5;
+pub const IP_MULTICAST_LOOP: i32 = 7;
+pub const IP_ADD_MEMBERSHIP: i32 = 3;
+pub const IP_DROP_MEMBERSHIP: i32 = 4;
+pub const SHUT_READ: i32 = 0;
+pub const SHUT_WRITE: i32 = 1;
+pub const SHUT_BOTH: i32 = 2;
+pub const SOCK_DGRAM: i32 = 2;
+pub const SOCK_STREAM: i32 = 1;
+pub const SOL_SOCKET: i32 = 4095;
+pub const SO_BROADCAST: i32 = 32;
+pub const SO_ERROR: i32 = 4103;
+pub const SO_RCVTIMEO: i32 = 4102;
+pub const SO_REUSEADDR: i32 = 4;
+pub const SO_SNDTIMEO: i32 = 4101;
+pub const SO_LINGER: i32 = 128;
+pub const TCP_NODELAY: i32 = 1;
+pub const MSG_PEEK: i32 = 1;
+
+pub type sa_family_t = u8;
+pub type socklen_t = usize;
+pub type in_addr_t = u32;
+pub type in_port_t = u16;
+
+#[derive(Debug, Copy, Clone)]
+#[repr(C)]
+pub struct in_addr {
+ pub s_addr: u32,
+}
+
+#[derive(Debug, Copy, Clone)]
+#[repr(C)]
+pub struct in6_addr {
+ pub s6_addr: [u8; 16],
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr {
+ pub sa_len: u8,
+ pub sa_family: sa_family_t,
+ pub sa_data: [u8; 14usize],
+}
+
+#[derive(Copy, Clone)]
+#[repr(C)]
+pub struct sockaddr_in6 {
+ pub sin6_len: u8,
+ pub sin6_family: sa_family_t,
+ pub sin6_port: in_port_t,
+ pub sin6_flowinfo: u32,
+ pub sin6_addr: in6_addr,
+ pub sin6_scope_id: u32,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+ pub sin_len: u8,
+ pub sin_family: sa_family_t,
+ pub sin_port: in_port_t,
+ pub sin_addr: in_addr,
+ pub sin_zero: [u8; 8usize],
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+ pub iov_base: *mut c_void,
+ pub iov_len: usize,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+ pub imr_multiaddr: in_addr,
+ pub imr_interface: in_addr,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_mreq {
+ pub ipv6mr_multiaddr: in6_addr,
+ pub ipv6mr_interface: c_uint,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct msghdr {
+ pub msg_name: *mut c_void,
+ pub msg_namelen: socklen_t,
+ pub msg_iov: *mut iovec,
+ pub msg_iovlen: c_int,
+ pub msg_control: *mut c_void,
+ pub msg_controllen: socklen_t,
+ pub msg_flags: c_int,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_storage {
+ pub s2_len: u8,
+ pub ss_family: sa_family_t,
+ pub s2_data1: [c_char; 2usize],
+ pub s2_data2: [u32; 3usize],
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct addrinfo {
+ pub ai_flags: c_int,
+ pub ai_family: c_int,
+ pub ai_socktype: c_int,
+ pub ai_protocol: c_int,
+ pub ai_addrlen: socklen_t,
+ pub ai_addr: *mut sockaddr,
+ pub ai_canonname: *mut c_char,
+ pub ai_next: *mut addrinfo,
+}
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct linger {
+ pub l_onoff: i32,
+ pub l_linger: i32,
+}
+
+#[inline]
+pub unsafe fn socket(domain: c_int, type_: c_int, protocol: c_int) -> FileDescriptor {
+ sys_hermit_socket(domain, type_, protocol)
+}
+
+#[inline]
+pub unsafe fn accept(
+ s: FileDescriptor,
+ addr: *mut sockaddr,
+ addrlen: *mut socklen_t,
+) -> FileDescriptor {
+ sys_hermit_accept(s, addr, addrlen)
+}
+
+#[inline]
+pub unsafe fn bind(s: FileDescriptor, name: *const sockaddr, namelen: socklen_t) -> i32 {
+ sys_hermit_bind(s, name, namelen)
+}
+
+#[inline]
+pub unsafe fn shutdown(s: FileDescriptor, how: c_int) -> i32 {
+ sys_hermit_shutdown(s, how)
+}
+
+#[inline]
+pub unsafe fn getpeername(s: FileDescriptor, name: *mut sockaddr, namelen: *mut socklen_t) -> i32 {
+ sys_hermit_getpeername(s, name, namelen)
+}
+
+#[inline]
+pub unsafe fn getsockname(s: FileDescriptor, name: *mut sockaddr, namelen: *mut socklen_t) -> i32 {
+ sys_hermit_getsockname(s, name, namelen)
+}
+
+#[inline]
+pub unsafe fn getsockopt(
+ s: FileDescriptor,
+ level: c_int,
+ optname: c_int,
+ optval: *mut c_void,
+ optlen: *const socklen_t,
+) -> i32 {
+ sys_hermit_getsockopt(s, level, optname, optval, optlen)
+}
+
+#[inline]
+pub unsafe fn setsockopt(
+ s: FileDescriptor,
+ level: c_int,
+ optname: c_int,
+ optval: *const c_void,
+ optlen: socklen_t,
+) -> i32 {
+ sys_hermit_setsockopt(s, level, optname, optval, optlen)
+}
+
+#[inline]
+pub unsafe fn connect(s: FileDescriptor, name: *const sockaddr, namelen: socklen_t) -> i32 {
+ sys_hermit_connect(s, name, namelen)
+}
+
+#[inline]
+pub unsafe fn listen(s: FileDescriptor, backlog: c_int) -> i32 {
+ sys_hermit_listen(s, backlog)
+}
+
+#[inline]
+pub unsafe fn recv(s: FileDescriptor, mem: *mut c_void, len: size_t, flags: c_int) -> ssize_t {
+ (-EINVAL).try_into().unwrap()
+}
+
+#[inline]
+pub unsafe fn recvfrom(
+ s: FileDescriptor,
+ mem: *mut c_void,
+ len: size_t,
+ flags: c_int,
+ from: *mut sockaddr,
+ fromlen: *mut socklen_t,
+) -> ssize_t {
+ (-EINVAL).try_into().unwrap()
+}
+
+#[inline]
+pub unsafe fn send(s: FileDescriptor, mem: *const c_void, len: size_t, flags: c_int) -> ssize_t {
+ (-EINVAL).try_into().unwrap()
+}
+
+#[inline]
+pub unsafe fn sendmsg(s: FileDescriptor, message: *const msghdr, flags: c_int) -> ssize_t {
+ (-EINVAL).try_into().unwrap()
+}
+
+#[inline]
+pub unsafe fn sendto(
+ s: FileDescriptor,
+ mem: *const c_void,
+ len: size_t,
+ flags: c_int,
+ to: *const sockaddr,
+ tolen: socklen_t,
+) -> ssize_t {
+ (-EINVAL).try_into().unwrap()
+}
+
+#[inline]
+pub unsafe fn freeaddrinfo(ai: *mut addrinfo) {}
+
+#[inline]
+pub unsafe fn getaddrinfo(
+ nodename: *const c_char,
+ servname: *const c_char,
+ hints: *const addrinfo,
+ res: *mut *mut addrinfo,
+) -> i32 {
+ sys_hermit_getaddrinfo(nodename, servname, hints, res)
+}