1 // Copyright (c) 2015-2017 Nuxi, https://nuxi.nl/
3 // SPDX-License-Identifier: BSD-2-Clause
5 #include <common/errno.h>
7 #include <sys/socket.h>
10 #include <wasi/core.h>
13 ssize_t
send(int socket
, const void *buffer
, size_t length
, int flags
) {
14 // This implementation does not support any flags.
20 // Prepare input parameters.
21 __wasi_ciovec_t iov
= {.buf
= buffer
, .buf_len
= length
};
22 #ifdef __wasilibc_unmodified_upstream // send/recv
23 __wasi_send_in_t si
= {
28 __wasi_ciovec_t
*si_data
= &iov
;
29 size_t si_data_len
= 1;
30 __wasi_siflags_t si_flags
= 0;
33 // Perform system call.
34 #ifdef __wasilibc_unmodified_upstream // send/recv
36 __wasi_errno_t error
= __wasi_sock_send(socket
, &si
, &so
);
39 __wasi_errno_t error
= __wasi_sock_send(socket
, si_data
, si_data_len
, si_flags
, &so_datalen
);
42 errno
= errno_fixup_socket(socket
, error
);
45 #ifdef __wasilibc_unmodified_upstream // send/recv