/* * Copyright 2024 Sony Semiconductor Solutions Corporation. * * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception */ #include "platform_api_vmcore.h" #include "platform_api_extension.h" int os_socket_accept(bh_socket_t server_sock, bh_socket_t *sock, void *addr, unsigned int *addrlen) { return BHT_ERROR; } int os_socket_connect(bh_socket_t socket, const char *addr, int port) { return BHT_ERROR; } int os_socket_recv_from(bh_socket_t socket, void *buf, unsigned int len, int flags, bh_sockaddr_t *src_addr) { return BHT_ERROR; } int os_socket_send_to(bh_socket_t socket, const void *buf, unsigned int len, int flags, const bh_sockaddr_t *dest_addr) { return BHT_ERROR; } int os_socket_addr_resolve(const char *host, const char *service, uint8_t *hint_is_tcp, uint8_t *hint_is_ipv4, bh_addr_info_t *addr_info, size_t addr_info_size, size_t *max_info_size) { return BHT_ERROR; } int os_socket_close(bh_socket_t socket) { return BHT_ERROR; } int os_socket_addr_local(bh_socket_t socket, bh_sockaddr_t *sockaddr) { return BHT_ERROR; } int os_socket_addr_remote(bh_socket_t socket, bh_sockaddr_t *sockaddr) { return BHT_ERROR; } int os_socket_bind(bh_socket_t socket, const char *host, int *port) { return BHT_ERROR; } int os_socket_listen(bh_socket_t socket, int max_client) { return BHT_ERROR; } int os_socket_create(bh_socket_t *sock, bool is_ipv4, bool is_tcp) { return BHT_ERROR; } int os_socket_send(bh_socket_t socket, const void *buf, unsigned int len) { return BHT_ERROR; } __wasi_errno_t os_socket_shutdown(bh_socket_t socket) { return __WASI_ENOSYS; } int os_socket_inet_network(bool is_ipv4, const char *cp, bh_ip_addr_buffer_t *out) { return BHT_ERROR; } int os_socket_set_send_timeout(bh_socket_t socket, uint64 timeout_us) { return BHT_ERROR; } int os_socket_get_recv_timeout(bh_socket_t socket, uint64 *timeout_us) { return BHT_ERROR; } int os_socket_set_send_buf_size(bh_socket_t socket, size_t bufsiz) { return BHT_ERROR; } int os_socket_get_send_buf_size(bh_socket_t socket, size_t *bufsiz) { return BHT_ERROR; } int os_socket_set_recv_buf_size(bh_socket_t socket, size_t bufsiz) { return BHT_ERROR; } int os_socket_get_recv_buf_size(bh_socket_t socket, size_t *bufsiz) { return BHT_ERROR; } int os_socket_set_broadcast(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_broadcast(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_get_send_timeout(bh_socket_t socket, uint64 *timeout_us) { return BHT_ERROR; } int os_socket_set_recv_timeout(bh_socket_t socket, uint64 timeout_us) { return BHT_ERROR; } int os_socket_set_keep_alive(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_keep_alive(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_reuse_addr(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_reuse_addr(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_reuse_port(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_reuse_port(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_linger(bh_socket_t socket, bool is_enabled, int linger_s) { return BHT_ERROR; } int os_socket_get_linger(bh_socket_t socket, bool *is_enabled, int *linger_s) { return BHT_ERROR; } int os_socket_set_tcp_no_delay(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_tcp_no_delay(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_tcp_quick_ack(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_tcp_quick_ack(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_tcp_keep_idle(bh_socket_t socket, uint32 time_s) { return BHT_ERROR; } int os_socket_get_tcp_keep_idle(bh_socket_t socket, uint32 *time_s) { return BHT_ERROR; } int os_socket_set_tcp_keep_intvl(bh_socket_t socket, uint32 time_s) { return BHT_ERROR; } int os_socket_get_tcp_keep_intvl(bh_socket_t socket, uint32 *time_s) { return BHT_ERROR; } int os_socket_set_tcp_fastopen_connect(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_tcp_fastopen_connect(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_ip_multicast_loop(bh_socket_t socket, bool ipv6, bool is_enabled) { return BHT_ERROR; } int os_socket_get_ip_multicast_loop(bh_socket_t socket, bool ipv6, bool *is_enabled) { return BHT_ERROR; } int os_socket_set_ip_add_membership(bh_socket_t socket, bh_ip_addr_buffer_t *imr_multiaddr, uint32_t imr_interface, bool is_ipv6) { return BHT_ERROR; } int os_socket_set_ip_drop_membership(bh_socket_t socket, bh_ip_addr_buffer_t *imr_multiaddr, uint32_t imr_interface, bool is_ipv6) { return BHT_ERROR; } int os_socket_set_ip_ttl(bh_socket_t socket, uint8_t ttl_s) { return BHT_ERROR; } int os_socket_get_ip_ttl(bh_socket_t socket, uint8_t *ttl_s) { return BHT_ERROR; } int os_socket_set_ip_multicast_ttl(bh_socket_t socket, uint8_t ttl_s) { return BHT_ERROR; } int os_socket_get_ip_multicast_ttl(bh_socket_t socket, uint8_t *ttl_s) { return BHT_ERROR; } int os_socket_set_ipv6_only(bh_socket_t socket, bool is_enabled) { return BHT_ERROR; } int os_socket_get_ipv6_only(bh_socket_t socket, bool *is_enabled) { return BHT_ERROR; } static void swap16(uint8 *pData) { uint8 value = *pData; *(pData) = *(pData + 1); *(pData + 1) = value; } static void swap32(uint8 *pData) { uint8 value = *pData; *pData = *(pData + 3); *(pData + 3) = value; value = *(pData + 1); *(pData + 1) = *(pData + 2); *(pData + 2) = value; } /** In-enclave implementation of POSIX functions **/ static bool is_little_endian() { long i = 0x01020304; unsigned char *c = (unsigned char *)&i; return (*c == 0x04) ? true : false; } uint16 htons(uint16 value) { uint16 ret; if (is_little_endian()) { ret = value; swap16((uint8 *)&ret); return ret; } return value; } uint32 htonl(uint32 value) { uint32 ret; if (is_little_endian()) { ret = value; swap32((uint8 *)&ret); return ret; } return value; }