Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 52 additions & 1 deletion deps/uvwasi/include/uvwasi.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ extern "C" {

#define UVWASI_VERSION_MAJOR 0
#define UVWASI_VERSION_MINOR 0
#define UVWASI_VERSION_PATCH 21
#define UVWASI_VERSION_PATCH 23
#define UVWASI_VERSION_HEX ((UVWASI_VERSION_MAJOR << 16) | \
(UVWASI_VERSION_MINOR << 8) | \
(UVWASI_VERSION_PATCH))
Expand Down Expand Up @@ -77,124 +77,159 @@ typedef struct uvwasi_options_s {
} uvwasi_options_t;

/* Embedder API. */
UVWASI_EXPORT
uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options);
UVWASI_EXPORT
void uvwasi_destroy(uvwasi_t* uvwasi);
UVWASI_EXPORT
void uvwasi_options_init(uvwasi_options_t* options);
/* Use int instead of uv_file to avoid needing uv.h */
UVWASI_EXPORT
uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi,
const uvwasi_fd_t fd,
int new_host_fd);
UVWASI_EXPORT
const char* uvwasi_embedder_err_code_to_string(uvwasi_errno_t code);


/* WASI system call API. */
UVWASI_EXPORT
uvwasi_errno_t uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_args_sizes_get(uvwasi_t* uvwasi,
uvwasi_size_t* argc,
uvwasi_size_t* argv_buf_size);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi,
uvwasi_clockid_t clock_id,
uvwasi_timestamp_t* resolution);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi,
uvwasi_clockid_t clock_id,
uvwasi_timestamp_t precision,
uvwasi_timestamp_t* time);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi,
char** environment,
char* environ_buf);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi,
uvwasi_size_t* environ_count,
uvwasi_size_t* environ_buf_size);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_filesize_t offset,
uvwasi_filesize_t len,
uvwasi_advice_t advice);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_filesize_t offset,
uvwasi_filesize_t len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_datasync(uvwasi_t* uvwasi, uvwasi_fd_t fd);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_fdstat_get(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_fdstat_t* buf);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_fdflags_t flags);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_rights_t fs_rights_base,
uvwasi_rights_t fs_rights_inheriting
);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_filestat_t* buf);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_filesize_t st_size);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_timestamp_t st_atim,
uvwasi_timestamp_t st_mtim,
uvwasi_fstflags_t fst_flags);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const uvwasi_iovec_t* iovs,
uvwasi_size_t iovs_len,
uvwasi_filesize_t offset,
uvwasi_size_t* nread);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_prestat_t* buf);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
char* path,
uvwasi_size_t path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const uvwasi_ciovec_t* iovs,
uvwasi_size_t iovs_len,
uvwasi_filesize_t offset,
uvwasi_size_t* nwritten);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_read(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const uvwasi_iovec_t* iovs,
uvwasi_size_t iovs_len,
uvwasi_size_t* nread);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
void* buf,
uvwasi_size_t buf_len,
uvwasi_dircookie_t cookie,
uvwasi_size_t* bufused);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi,
uvwasi_fd_t from,
uvwasi_fd_t to);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_filedelta_t offset,
uvwasi_whence_t whence,
uvwasi_filesize_t* newoffset);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_tell(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_filesize_t* offset);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const uvwasi_ciovec_t* iovs,
uvwasi_size_t iovs_len,
uvwasi_size_t* nwritten);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const char* path,
uvwasi_size_t path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_lookupflags_t flags,
const char* path,
uvwasi_size_t path_len,
uvwasi_filestat_t* buf);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
uvwasi_lookupflags_t flags,
Expand All @@ -203,6 +238,7 @@ uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi,
uvwasi_timestamp_t st_atim,
uvwasi_timestamp_t st_mtim,
uvwasi_fstflags_t fst_flags);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi,
uvwasi_fd_t old_fd,
uvwasi_lookupflags_t old_flags,
Expand All @@ -211,6 +247,7 @@ uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi,
uvwasi_fd_t new_fd,
const char* new_path,
uvwasi_size_t new_path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi,
uvwasi_fd_t dirfd,
uvwasi_lookupflags_t dirflags,
Expand All @@ -221,62 +258,76 @@ uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi,
uvwasi_rights_t fs_rights_inheriting,
uvwasi_fdflags_t fs_flags,
uvwasi_fd_t* fd);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const char* path,
uvwasi_size_t path_len,
char* buf,
uvwasi_size_t buf_len,
uvwasi_size_t* bufused);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const char* path,
uvwasi_size_t path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi,
uvwasi_fd_t old_fd,
const char* old_path,
uvwasi_size_t old_path_len,
uvwasi_fd_t new_fd,
const char* new_path,
uvwasi_size_t new_path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi,
const char* old_path,
uvwasi_size_t old_path_len,
uvwasi_fd_t fd,
const char* new_path,
uvwasi_size_t new_path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi,
uvwasi_fd_t fd,
const char* path,
uvwasi_size_t path_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi,
const uvwasi_subscription_t* in,
uvwasi_event_t* out,
uvwasi_size_t nsubscriptions,
uvwasi_size_t* nevents);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_proc_raise(uvwasi_t* uvwasi, uvwasi_signal_t sig);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_random_get(uvwasi_t* uvwasi,
void* buf,
uvwasi_size_t buf_len);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_sock_accept(uvwasi_t* uvwasi,
uvwasi_fd_t sock,
uvwasi_fdflags_t flags,
uvwasi_fd_t* fd);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi,
uvwasi_fd_t sock,
const uvwasi_iovec_t* ri_data,
uvwasi_size_t ri_data_len,
uvwasi_riflags_t ri_flags,
uvwasi_size_t* ro_datalen,
uvwasi_roflags_t* ro_flags);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi,
uvwasi_fd_t sock,
const uvwasi_ciovec_t* si_data,
uvwasi_size_t si_data_len,
uvwasi_siflags_t si_flags,
uvwasi_size_t* so_datalen);
UVWASI_EXPORT
uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi,
uvwasi_fd_t sock,
uvwasi_sdflags_t how);
Expand Down
9 changes: 9 additions & 0 deletions deps/uvwasi/include/wasi_serdes.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
/* Basic uint{8,16,32,64}_t read/write functions. */

#define BASIC_TYPE(name, type) \
UVWASI_EXPORT \
void uvwasi_serdes_write_##name(void* ptr, size_t offset, type value); \
UVWASI_EXPORT \
type uvwasi_serdes_read_##name(const void* ptr, size_t offset); \

#define BASIC_TYPE_UVWASI(type) BASIC_TYPE(type, uvwasi_##type)
Expand Down Expand Up @@ -83,15 +85,18 @@ BASIC_TYPE_UVWASI(whence_t)
/* WASI structure read/write functions. */

#define STRUCT(name) \
UVWASI_EXPORT \
void uvwasi_serdes_write_##name(void* ptr, \
size_t offset, \
const uvwasi_##name* value); \
UVWASI_EXPORT \
void uvwasi_serdes_read_##name(const void* ptr, \
size_t offset, \
uvwasi_##name* value);

/* iovs currently only need to be read from WASM memory. */
#define IOVS_STRUCT(name) \
UVWASI_EXPORT \
uvwasi_errno_t uvwasi_serdes_read_##name(const void* ptr, \
size_t end, \
size_t offset, \
Expand Down Expand Up @@ -124,20 +129,24 @@ STRUCT(subscription_t)
#undef STRUCT
#undef IOVS_STRUCT

UVWASI_EXPORT
uvwasi_errno_t uvwasi_serdes_readv_ciovec_t(const void* ptr,
size_t end,
size_t offset,
uvwasi_ciovec_t* iovs,
uvwasi_size_t iovs_len);

UVWASI_EXPORT
uvwasi_errno_t uvwasi_serdes_readv_iovec_t(const void* ptr,
size_t end,
size_t offset,
uvwasi_iovec_t* iovs,
uvwasi_size_t iovs_len);

/* Helper functions for memory bounds checking. */
UVWASI_EXPORT
int uvwasi_serdes_check_bounds(size_t offset, size_t end, size_t size);
UVWASI_EXPORT
int uvwasi_serdes_check_array_bounds(size_t offset,
size_t end,
size_t size,
Expand Down
6 changes: 6 additions & 0 deletions deps/uvwasi/include/wasi_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -322,4 +322,10 @@ typedef uint8_t uvwasi_whence_t;
#define UVWASI_WHENCE_CUR 1
#define UVWASI_WHENCE_END 2

#ifdef NEED_UVWASI_EXPORT
#define UVWASI_EXPORT __attribute__((visibility("default")))
#else
#define UVWASI_EXPORT
#endif /* NEED_UVWASI_EXPORT */

#endif /* __UVWASI_WASI_TYPES_H__ */
Loading
Loading