From 44927e294884928f96dba86f39fcf3296d5f471b Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 19 Aug 2025 15:41:03 +0200 Subject: [PATCH 1/6] fix: remove `-fvisibility=hidden` from the build flags With this flag, no symbols are exported in the shared library, making it impossible to interface with. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c78fdcd..66930c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ cmake_dependent_option(UVWASI_BUILD_TESTS set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU") - list(APPEND uvwasi_cflags -fvisibility=hidden --std=gnu89) + list(APPEND uvwasi_cflags --std=gnu89) list(APPEND uvwasi_cflags -Wall -Wsign-compare -Wextra -Wstrict-prototypes) list(APPEND uvwasi_cflags -Wno-unused-parameter) endif() From fb718e023d80bcba00e687c19e66045c19505a7a Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 2 Sep 2025 22:16:58 +0200 Subject: [PATCH 2/6] export methods instead --- CMakeLists.txt | 2 +- include/uvwasi.h | 102 +++++++++++++++++++++--------------------- include/wasi_serdes.h | 8 ++-- include/wasi_types.h | 10 +++++ 4 files changed, 66 insertions(+), 56 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 66930c2..c78fdcd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ cmake_dependent_option(UVWASI_BUILD_TESTS set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU") - list(APPEND uvwasi_cflags --std=gnu89) + list(APPEND uvwasi_cflags -fvisibility=hidden --std=gnu89) list(APPEND uvwasi_cflags -Wall -Wsign-compare -Wextra -Wstrict-prototypes) list(APPEND uvwasi_cflags -Wno-unused-parameter) endif() diff --git a/include/uvwasi.h b/include/uvwasi.h index 7dbcc66..3360b7c 100644 --- a/include/uvwasi.h +++ b/include/uvwasi.h @@ -77,125 +77,125 @@ typedef struct uvwasi_options_s { } uvwasi_options_t; /* Embedder API. */ -uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options); -void uvwasi_destroy(uvwasi_t* uvwasi); -void uvwasi_options_init(uvwasi_options_t* options); +uvwasi_errno_t UVWASI_EXPORT uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options); +void UVWASI_EXPORT uvwasi_destroy(uvwasi_t* uvwasi); +void UVWASI_EXPORT uvwasi_options_init(uvwasi_options_t* options); /* Use int instead of uv_file to avoid needing uv.h */ -uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, const uvwasi_fd_t fd, int new_host_fd); -const char* uvwasi_embedder_err_code_to_string(uvwasi_errno_t code); +const char* UVWASI_EXPORT uvwasi_embedder_err_code_to_string(uvwasi_errno_t code); /* WASI system call API. */ -uvwasi_errno_t uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf); -uvwasi_errno_t uvwasi_args_sizes_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf); +uvwasi_errno_t UVWASI_EXPORT uvwasi_args_sizes_get(uvwasi_t* uvwasi, uvwasi_size_t* argc, uvwasi_size_t* argv_buf_size); -uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_clock_res_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t* resolution); -uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_clock_time_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t precision, uvwasi_timestamp_t* time); -uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_environ_get(uvwasi_t* uvwasi, char** environment, char* environ_buf); -uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_environ_sizes_get(uvwasi_t* uvwasi, uvwasi_size_t* environ_count, uvwasi_size_t* environ_buf_size); -uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_advise(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, uvwasi_filesize_t len, uvwasi_advice_t advice); -uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_allocate(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, uvwasi_filesize_t len); -uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd); -uvwasi_errno_t uvwasi_fd_datasync(uvwasi_t* uvwasi, uvwasi_fd_t fd); -uvwasi_errno_t uvwasi_fd_fdstat_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd); +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_datasync(uvwasi_t* uvwasi, uvwasi_fd_t fd); +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_fdstat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_fdstat_t* buf); -uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_fdflags_t flags); -uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_filestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filestat_t* buf); -uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t st_size); -uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_prestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_prestat_t* buf); -uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, uvwasi_fd_t fd, char* path, uvwasi_size_t path_len); -uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_fd_read(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_renumber(uvwasi_t* uvwasi, uvwasi_fd_t from, uvwasi_fd_t to); -uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_seek(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filedelta_t offset, uvwasi_whence_t whence, uvwasi_filesize_t* newoffset); -uvwasi_errno_t uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd); -uvwasi_errno_t uvwasi_fd_tell(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd); +uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_tell(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t* offset); -uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_path_create_directory(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, uvwasi_size_t path_len); -uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_lookupflags_t flags, const char* path, @@ -203,7 +203,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_errno_t uvwasi_path_link(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_path_link(uvwasi_t* uvwasi, uvwasi_fd_t old_fd, uvwasi_lookupflags_t old_flags, const char* old_path, @@ -211,7 +211,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_errno_t uvwasi_path_open(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_path_open(uvwasi_t* uvwasi, uvwasi_fd_t dirfd, uvwasi_lookupflags_t dirflags, const char* path, @@ -221,63 +221,63 @@ 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_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_path_remove_directory(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, uvwasi_size_t path_len); -uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_path_unlink_file(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, uvwasi_size_t path_len); -uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_poll_oneoff(uvwasi_t* uvwasi, const uvwasi_subscription_t* in, uvwasi_event_t* out, uvwasi_size_t nsubscriptions, uvwasi_size_t* nevents); -uvwasi_errno_t uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval); -uvwasi_errno_t uvwasi_proc_raise(uvwasi_t* uvwasi, uvwasi_signal_t sig); -uvwasi_errno_t uvwasi_random_get(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval); +uvwasi_errno_t UVWASI_EXPORT uvwasi_proc_raise(uvwasi_t* uvwasi, uvwasi_signal_t sig); +uvwasi_errno_t UVWASI_EXPORT uvwasi_random_get(uvwasi_t* uvwasi, void* buf, uvwasi_size_t buf_len); -uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi); -uvwasi_errno_t uvwasi_sock_accept(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_sched_yield(uvwasi_t* uvwasi); +uvwasi_errno_t UVWASI_EXPORT uvwasi_sock_accept(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_fdflags_t flags, uvwasi_fd_t* fd); -uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_sock_send(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT 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_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, +uvwasi_errno_t UVWASI_EXPORT uvwasi_sock_shutdown(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_sdflags_t how); diff --git a/include/wasi_serdes.h b/include/wasi_serdes.h index 038ae74..24bf627 100644 --- a/include/wasi_serdes.h +++ b/include/wasi_serdes.h @@ -124,21 +124,21 @@ STRUCT(subscription_t) #undef STRUCT #undef IOVS_STRUCT -uvwasi_errno_t uvwasi_serdes_readv_ciovec_t(const void* ptr, +uvwasi_errno_t UVWASI_EXPORT uvwasi_serdes_readv_ciovec_t(const void* ptr, size_t end, size_t offset, uvwasi_ciovec_t* iovs, uvwasi_size_t iovs_len); -uvwasi_errno_t uvwasi_serdes_readv_iovec_t(const void* ptr, +uvwasi_errno_t UVWASI_EXPORT 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. */ -int uvwasi_serdes_check_bounds(size_t offset, size_t end, size_t size); -int uvwasi_serdes_check_array_bounds(size_t offset, +int UVWASI_EXPORT uvwasi_serdes_check_bounds(size_t offset, size_t end, size_t size); +int UVWASI_EXPORT uvwasi_serdes_check_array_bounds(size_t offset, size_t end, size_t size, size_t count); diff --git a/include/wasi_types.h b/include/wasi_types.h index 045c552..e08f83d 100644 --- a/include/wasi_types.h +++ b/include/wasi_types.h @@ -322,4 +322,14 @@ typedef uint8_t uvwasi_whence_t; #define UVWASI_WHENCE_CUR 1 #define UVWASI_WHENCE_END 2 +#if defined(_WIN32) || defined(__CYGWIN__) + #ifdef BUILDING_DLL + #define UVWASI_EXPORT __declspec(dllexport) + #else + #define UVWASI_EXPORT __declspec(dllimport) + #endif +#else + #define UVWASI_EXPORT __attribute__((visibility("default"))) +#endif + #endif /* __UVWASI_WASI_TYPES_H__ */ From 5370e2c394aa15b619c69d36385dcef246ddcde3 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 2 Sep 2025 22:22:57 +0200 Subject: [PATCH 3/6] nit --- include/uvwasi.h | 153 ++++++++++++++++++++++++++++-------------- include/wasi_serdes.h | 12 ++-- 2 files changed, 110 insertions(+), 55 deletions(-) diff --git a/include/uvwasi.h b/include/uvwasi.h index 3360b7c..5061ce1 100644 --- a/include/uvwasi.h +++ b/include/uvwasi.h @@ -77,125 +77,160 @@ typedef struct uvwasi_options_s { } uvwasi_options_t; /* Embedder API. */ -uvwasi_errno_t UVWASI_EXPORT uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options); -void UVWASI_EXPORT uvwasi_destroy(uvwasi_t* uvwasi); -void UVWASI_EXPORT uvwasi_options_init(uvwasi_options_t* options); +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_errno_t UVWASI_EXPORT uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, const uvwasi_fd_t fd, int new_host_fd); -const char* UVWASI_EXPORT uvwasi_embedder_err_code_to_string(uvwasi_errno_t code); +UVWASI_EXPORT +const char* uvwasi_embedder_err_code_to_string(uvwasi_errno_t code); /* WASI system call API. */ -uvwasi_errno_t UVWASI_EXPORT uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf); -uvwasi_errno_t UVWASI_EXPORT uvwasi_args_sizes_get(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_clock_res_get(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t* resolution); -uvwasi_errno_t UVWASI_EXPORT uvwasi_clock_time_get(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_environ_get(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi, char** environment, char* environ_buf); -uvwasi_errno_t UVWASI_EXPORT uvwasi_environ_sizes_get(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi, uvwasi_size_t* environ_count, uvwasi_size_t* environ_buf_size); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_advise(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_allocate(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, uvwasi_filesize_t len); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_datasync(uvwasi_t* uvwasi, uvwasi_fd_t fd); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_fdstat_get(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_fdflags_t flags); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_filestat_get(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filestat_t* buf); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t st_size); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_pread(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_prestat_get(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_prestat_t* buf); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_pwrite(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_read(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_readdir(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_renumber(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi, uvwasi_fd_t from, uvwasi_fd_t to); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_seek(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd); -uvwasi_errno_t UVWASI_EXPORT uvwasi_fd_tell(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_fd_write(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_create_directory(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_filestat_get(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_lookupflags_t flags, const char* path, @@ -203,7 +238,8 @@ uvwasi_errno_t UVWASI_EXPORT uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, uvwasi_timestamp_t st_atim, uvwasi_timestamp_t st_mtim, uvwasi_fstflags_t fst_flags); -uvwasi_errno_t UVWASI_EXPORT uvwasi_path_link(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi, uvwasi_fd_t old_fd, uvwasi_lookupflags_t old_flags, const char* old_path, @@ -211,7 +247,8 @@ uvwasi_errno_t UVWASI_EXPORT uvwasi_path_link(uvwasi_t* uvwasi, uvwasi_fd_t new_fd, const char* new_path, uvwasi_size_t new_path_len); -uvwasi_errno_t UVWASI_EXPORT uvwasi_path_open(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi, uvwasi_fd_t dirfd, uvwasi_lookupflags_t dirflags, const char* path, @@ -221,63 +258,77 @@ uvwasi_errno_t UVWASI_EXPORT uvwasi_path_open(uvwasi_t* uvwasi, uvwasi_rights_t fs_rights_inheriting, uvwasi_fdflags_t fs_flags, uvwasi_fd_t* fd); -uvwasi_errno_t UVWASI_EXPORT uvwasi_path_readlink(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_remove_directory(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_rename(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_symlink(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_path_unlink_file(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_poll_oneoff(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval); -uvwasi_errno_t UVWASI_EXPORT uvwasi_proc_raise(uvwasi_t* uvwasi, uvwasi_signal_t sig); -uvwasi_errno_t UVWASI_EXPORT uvwasi_random_get(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_sched_yield(uvwasi_t* uvwasi); -uvwasi_errno_t UVWASI_EXPORT uvwasi_sock_accept(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_sock_recv(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_sock_send(uvwasi_t* uvwasi, +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_errno_t UVWASI_EXPORT uvwasi_sock_shutdown(uvwasi_t* uvwasi, +UVWASI_EXPORT +uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_sdflags_t how); diff --git a/include/wasi_serdes.h b/include/wasi_serdes.h index 24bf627..90db7cd 100644 --- a/include/wasi_serdes.h +++ b/include/wasi_serdes.h @@ -124,21 +124,25 @@ STRUCT(subscription_t) #undef STRUCT #undef IOVS_STRUCT -uvwasi_errno_t UVWASI_EXPORT uvwasi_serdes_readv_ciovec_t(const void* ptr, +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_errno_t UVWASI_EXPORT uvwasi_serdes_readv_iovec_t(const void* ptr, +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. */ -int UVWASI_EXPORT uvwasi_serdes_check_bounds(size_t offset, size_t end, size_t size); -int UVWASI_EXPORT uvwasi_serdes_check_array_bounds(size_t offset, +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, size_t count); From 263d0960e8ac33940fe47dcc76324c1c0c35c41d Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 2 Sep 2025 22:34:52 +0200 Subject: [PATCH 4/6] fix windows? --- src/uvwasi.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/uvwasi.c b/src/uvwasi.c index c33f5c4..fe701e8 100644 --- a/src/uvwasi.c +++ b/src/uvwasi.c @@ -136,6 +136,7 @@ void* uvwasi__malloc(const uvwasi_t* uvwasi, size_t size) { return uvwasi->allocator->malloc(size, uvwasi->allocator->mem_user_data); } +UVWASI_EXPORT void uvwasi__free(const uvwasi_t* uvwasi, void* ptr) { if (ptr == NULL) return; @@ -249,6 +250,7 @@ void on_new_connection(uv_stream_t *server, int status) { // just do nothing } +UVWASI_EXPORT uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { uv_fs_t realpath_req; uv_fs_t open_req; @@ -435,6 +437,7 @@ uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { } +UVWASI_EXPORT void uvwasi_destroy(uvwasi_t* uvwasi) { if (uvwasi == NULL) return; @@ -458,6 +461,7 @@ void uvwasi_destroy(uvwasi_t* uvwasi) { } +UVWASI_EXPORT void uvwasi_options_init(uvwasi_options_t* options) { if (options == NULL) return; @@ -477,6 +481,7 @@ void uvwasi_options_init(uvwasi_options_t* options) { } +UVWASI_EXPORT uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, const uvwasi_fd_t fd, uv_file new_host_fd) { @@ -496,6 +501,7 @@ uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf) { uvwasi_size_t i; @@ -516,6 +522,7 @@ 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) { @@ -533,6 +540,7 @@ uvwasi_errno_t uvwasi_args_sizes_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t* resolution) { @@ -559,6 +567,7 @@ uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t precision, @@ -589,6 +598,7 @@ uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi, char** environment, char* environ_buf) { @@ -612,6 +622,7 @@ uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi, uvwasi_size_t* environ_count, uvwasi_size_t* environ_buf_size) { @@ -630,6 +641,7 @@ uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, @@ -718,6 +730,7 @@ uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, @@ -780,6 +793,7 @@ uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, return err; } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd) { struct uvwasi_fd_wrap_t* wrap; uvwasi_errno_t err = 0; @@ -823,6 +837,7 @@ 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) { struct uvwasi_fd_wrap_t* wrap; uvwasi_errno_t err; @@ -853,6 +868,7 @@ 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) { @@ -894,6 +910,7 @@ uvwasi_errno_t uvwasi_fd_fdstat_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_fdflags_t flags) { @@ -964,6 +981,7 @@ uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_rights_t fs_rights_base, @@ -1007,6 +1025,7 @@ uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filestat_t* buf) { @@ -1046,6 +1065,7 @@ uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t st_size) { @@ -1083,6 +1103,7 @@ uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_timestamp_t st_atim, @@ -1140,6 +1161,7 @@ uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_iovec_t* iovs, @@ -1201,6 +1223,7 @@ uvwasi_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_prestat_t* buf) { @@ -1232,6 +1255,7 @@ uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, uvwasi_fd_t fd, char* path, @@ -1272,6 +1296,7 @@ uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_ciovec_t* iovs, @@ -1333,6 +1358,7 @@ uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_read(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_iovec_t* iovs, @@ -1387,6 +1413,7 @@ uvwasi_errno_t uvwasi_fd_read(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, uvwasi_fd_t fd, void* buf, @@ -1551,6 +1578,7 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi, uvwasi_fd_t from, uvwasi_fd_t to) { @@ -1566,6 +1594,7 @@ uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filedelta_t offset, @@ -1595,6 +1624,7 @@ uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd) { struct uvwasi_fd_wrap_t* wrap; uv_fs_t req; @@ -1625,6 +1655,7 @@ 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) { @@ -1649,6 +1680,7 @@ uvwasi_errno_t uvwasi_fd_tell(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_ciovec_t* iovs, @@ -1704,6 +1736,7 @@ uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -1752,6 +1785,7 @@ uvwasi_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_lookupflags_t flags, @@ -1810,6 +1844,7 @@ uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_lookupflags_t flags, @@ -1889,6 +1924,7 @@ uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi, uvwasi_fd_t old_fd, uvwasi_lookupflags_t old_flags, @@ -1995,6 +2031,7 @@ uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi, uvwasi_fd_t dirfd, uvwasi_lookupflags_t dirflags, @@ -2159,6 +2196,7 @@ uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -2222,6 +2260,7 @@ uvwasi_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -2268,6 +2307,7 @@ uvwasi_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi, uvwasi_fd_t old_fd, const char* old_path, @@ -2371,6 +2411,7 @@ uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi, const char* old_path, uvwasi_size_t old_path_len, @@ -2460,6 +2501,7 @@ uvwasi_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi, return err; } +UVWASI_EXPORT uvwasi_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -2506,6 +2548,7 @@ uvwasi_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi, const uvwasi_subscription_t* in, uvwasi_event_t* out, @@ -2629,6 +2672,7 @@ uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval) { UVWASI_DEBUG("uvwasi_proc_exit(uvwasi=%p, rval=%d)\n", uvwasi, rval); exit(rval); @@ -2636,6 +2680,7 @@ 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) { int r; @@ -2656,6 +2701,7 @@ 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) { @@ -2677,6 +2723,7 @@ uvwasi_errno_t uvwasi_random_get(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi) { UVWASI_DEBUG("uvwasi_sched_yield(uvwasi=%p)\n", uvwasi); @@ -2693,6 +2740,7 @@ uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi) { return UVWASI_ESUCCESS; } +UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, uvwasi_fd_t sock, const uvwasi_iovec_t* ri_data, @@ -2747,6 +2795,7 @@ uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, } +UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi, uvwasi_fd_t sock, const uvwasi_ciovec_t* si_data, @@ -2796,6 +2845,7 @@ uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi, return UVWASI_ESUCCESS; } +UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_sdflags_t how) { @@ -2838,6 +2888,7 @@ uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, return UVWASI_ESUCCESS; } +UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_accept(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_fdflags_t flags, From 8e6498143202802ca27662668d941a5d7952776f Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 2 Sep 2025 22:37:07 +0200 Subject: [PATCH 5/6] Revert "fix windows?" This reverts commit 263d0960e8ac33940fe47dcc76324c1c0c35c41d. --- src/uvwasi.c | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) diff --git a/src/uvwasi.c b/src/uvwasi.c index fe701e8..c33f5c4 100644 --- a/src/uvwasi.c +++ b/src/uvwasi.c @@ -136,7 +136,6 @@ void* uvwasi__malloc(const uvwasi_t* uvwasi, size_t size) { return uvwasi->allocator->malloc(size, uvwasi->allocator->mem_user_data); } -UVWASI_EXPORT void uvwasi__free(const uvwasi_t* uvwasi, void* ptr) { if (ptr == NULL) return; @@ -250,7 +249,6 @@ void on_new_connection(uv_stream_t *server, int status) { // just do nothing } -UVWASI_EXPORT uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { uv_fs_t realpath_req; uv_fs_t open_req; @@ -437,7 +435,6 @@ uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { } -UVWASI_EXPORT void uvwasi_destroy(uvwasi_t* uvwasi) { if (uvwasi == NULL) return; @@ -461,7 +458,6 @@ void uvwasi_destroy(uvwasi_t* uvwasi) { } -UVWASI_EXPORT void uvwasi_options_init(uvwasi_options_t* options) { if (options == NULL) return; @@ -481,7 +477,6 @@ void uvwasi_options_init(uvwasi_options_t* options) { } -UVWASI_EXPORT uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, const uvwasi_fd_t fd, uv_file new_host_fd) { @@ -501,7 +496,6 @@ uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf) { uvwasi_size_t i; @@ -522,7 +516,6 @@ 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) { @@ -540,7 +533,6 @@ uvwasi_errno_t uvwasi_args_sizes_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t* resolution) { @@ -567,7 +559,6 @@ uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi, uvwasi_clockid_t clock_id, uvwasi_timestamp_t precision, @@ -598,7 +589,6 @@ uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi, char** environment, char* environ_buf) { @@ -622,7 +612,6 @@ uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi, uvwasi_size_t* environ_count, uvwasi_size_t* environ_buf_size) { @@ -641,7 +630,6 @@ uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, @@ -730,7 +718,6 @@ uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t offset, @@ -793,7 +780,6 @@ uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, return err; } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd) { struct uvwasi_fd_wrap_t* wrap; uvwasi_errno_t err = 0; @@ -837,7 +823,6 @@ 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) { struct uvwasi_fd_wrap_t* wrap; uvwasi_errno_t err; @@ -868,7 +853,6 @@ 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) { @@ -910,7 +894,6 @@ uvwasi_errno_t uvwasi_fd_fdstat_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_fdflags_t flags) { @@ -981,7 +964,6 @@ uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_rights_t fs_rights_base, @@ -1025,7 +1007,6 @@ uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filestat_t* buf) { @@ -1065,7 +1046,6 @@ uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filesize_t st_size) { @@ -1103,7 +1083,6 @@ uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_timestamp_t st_atim, @@ -1161,7 +1140,6 @@ uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_iovec_t* iovs, @@ -1223,7 +1201,6 @@ uvwasi_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_prestat_t* buf) { @@ -1255,7 +1232,6 @@ uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, uvwasi_fd_t fd, char* path, @@ -1296,7 +1272,6 @@ uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_ciovec_t* iovs, @@ -1358,7 +1333,6 @@ uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_read(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_iovec_t* iovs, @@ -1413,7 +1387,6 @@ uvwasi_errno_t uvwasi_fd_read(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, uvwasi_fd_t fd, void* buf, @@ -1578,7 +1551,6 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi, uvwasi_fd_t from, uvwasi_fd_t to) { @@ -1594,7 +1566,6 @@ uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_filedelta_t offset, @@ -1624,7 +1595,6 @@ uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd) { struct uvwasi_fd_wrap_t* wrap; uv_fs_t req; @@ -1655,7 +1625,6 @@ 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) { @@ -1680,7 +1649,6 @@ uvwasi_errno_t uvwasi_fd_tell(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi, uvwasi_fd_t fd, const uvwasi_ciovec_t* iovs, @@ -1736,7 +1704,6 @@ uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -1785,7 +1752,6 @@ uvwasi_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_lookupflags_t flags, @@ -1844,7 +1810,6 @@ uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, uvwasi_fd_t fd, uvwasi_lookupflags_t flags, @@ -1924,7 +1889,6 @@ uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi, uvwasi_fd_t old_fd, uvwasi_lookupflags_t old_flags, @@ -2031,7 +1995,6 @@ uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi, uvwasi_fd_t dirfd, uvwasi_lookupflags_t dirflags, @@ -2196,7 +2159,6 @@ uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -2260,7 +2222,6 @@ uvwasi_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -2307,7 +2268,6 @@ uvwasi_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi, uvwasi_fd_t old_fd, const char* old_path, @@ -2411,7 +2371,6 @@ uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi, const char* old_path, uvwasi_size_t old_path_len, @@ -2501,7 +2460,6 @@ uvwasi_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi, return err; } -UVWASI_EXPORT uvwasi_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi, uvwasi_fd_t fd, const char* path, @@ -2548,7 +2506,6 @@ uvwasi_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi, const uvwasi_subscription_t* in, uvwasi_event_t* out, @@ -2672,7 +2629,6 @@ uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval) { UVWASI_DEBUG("uvwasi_proc_exit(uvwasi=%p, rval=%d)\n", uvwasi, rval); exit(rval); @@ -2680,7 +2636,6 @@ 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) { int r; @@ -2701,7 +2656,6 @@ 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) { @@ -2723,7 +2677,6 @@ uvwasi_errno_t uvwasi_random_get(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi) { UVWASI_DEBUG("uvwasi_sched_yield(uvwasi=%p)\n", uvwasi); @@ -2740,7 +2693,6 @@ uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi) { return UVWASI_ESUCCESS; } -UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, uvwasi_fd_t sock, const uvwasi_iovec_t* ri_data, @@ -2795,7 +2747,6 @@ uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, } -UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi, uvwasi_fd_t sock, const uvwasi_ciovec_t* si_data, @@ -2845,7 +2796,6 @@ uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi, return UVWASI_ESUCCESS; } -UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_sdflags_t how) { @@ -2888,7 +2838,6 @@ uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, return UVWASI_ESUCCESS; } -UVWASI_EXPORT uvwasi_errno_t uvwasi_sock_accept(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_fdflags_t flags, From 5bcd752465120fd414c5003d5cbd70b9d9e030a5 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 2 Sep 2025 22:37:49 +0200 Subject: [PATCH 6/6] fix windows? --- include/wasi_types.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/include/wasi_types.h b/include/wasi_types.h index e08f83d..295c93e 100644 --- a/include/wasi_types.h +++ b/include/wasi_types.h @@ -323,11 +323,7 @@ typedef uint8_t uvwasi_whence_t; #define UVWASI_WHENCE_END 2 #if defined(_WIN32) || defined(__CYGWIN__) - #ifdef BUILDING_DLL - #define UVWASI_EXPORT __declspec(dllexport) - #else - #define UVWASI_EXPORT __declspec(dllimport) - #endif + #define UVWASI_EXPORT #else #define UVWASI_EXPORT __attribute__((visibility("default"))) #endif