55extern "C" {
66#endif
77
8- #include "uv .h"
8+ #include "wasi_serdes .h"
99#include "wasi_types.h"
10- #include "fd_table.h"
1110
1211#define UVWASI_VERSION_MAJOR 0
1312#define UVWASI_VERSION_MINOR 0
14- #define UVWASI_VERSION_PATCH 8
13+ #define UVWASI_VERSION_PATCH 9
1514#define UVWASI_VERSION_HEX ((UVWASI_VERSION_MAJOR << 16) | \
1615 (UVWASI_VERSION_MINOR << 8) | \
1716 (UVWASI_VERSION_PATCH))
@@ -35,16 +34,18 @@ typedef struct uvwasi_mem_s {
3534 uvwasi_realloc realloc ;
3635} uvwasi_mem_t ;
3736
37+ struct uvwasi_fd_table_t ;
38+
3839typedef struct uvwasi_s {
39- struct uvwasi_fd_table_t fds ;
40- size_t argc ;
40+ struct uvwasi_fd_table_t * fds ;
41+ uvwasi_size_t argc ;
4142 char * * argv ;
4243 char * argv_buf ;
43- size_t argv_buf_size ;
44- size_t envc ;
44+ uvwasi_size_t argv_buf_size ;
45+ uvwasi_size_t envc ;
4546 char * * env ;
4647 char * env_buf ;
47- size_t env_buf_size ;
48+ uvwasi_size_t env_buf_size ;
4849 const uvwasi_mem_t * allocator ;
4950} uvwasi_t ;
5051
@@ -54,12 +55,12 @@ typedef struct uvwasi_preopen_s {
5455} uvwasi_preopen_t ;
5556
5657typedef struct uvwasi_options_s {
57- size_t fd_table_size ;
58- size_t preopenc ;
58+ uvwasi_size_t fd_table_size ;
59+ uvwasi_size_t preopenc ;
5960 uvwasi_preopen_t * preopens ;
60- size_t argc ;
61- char * * argv ;
62- char * * envp ;
61+ uvwasi_size_t argc ;
62+ const char * * argv ;
63+ const char * * envp ;
6364 uvwasi_fd_t in ;
6465 uvwasi_fd_t out ;
6566 uvwasi_fd_t err ;
@@ -69,17 +70,18 @@ typedef struct uvwasi_options_s {
6970/* Embedder API. */
7071uvwasi_errno_t uvwasi_init (uvwasi_t * uvwasi , uvwasi_options_t * options );
7172void uvwasi_destroy (uvwasi_t * uvwasi );
73+ /* Use int instead of uv_file to avoid needing uv.h */
7274uvwasi_errno_t uvwasi_embedder_remap_fd (uvwasi_t * uvwasi ,
7375 const uvwasi_fd_t fd ,
74- uv_file new_host_fd );
76+ int new_host_fd );
7577const char * uvwasi_embedder_err_code_to_string (uvwasi_errno_t code );
7678
7779
7880/* WASI system call API. */
7981uvwasi_errno_t uvwasi_args_get (uvwasi_t * uvwasi , char * * argv , char * argv_buf );
8082uvwasi_errno_t uvwasi_args_sizes_get (uvwasi_t * uvwasi ,
81- size_t * argc ,
82- size_t * argv_buf_size );
83+ uvwasi_size_t * argc ,
84+ uvwasi_size_t * argv_buf_size );
8385uvwasi_errno_t uvwasi_clock_res_get (uvwasi_t * uvwasi ,
8486 uvwasi_clockid_t clock_id ,
8587 uvwasi_timestamp_t * resolution );
@@ -91,8 +93,8 @@ uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi,
9193 char * * environment ,
9294 char * environ_buf );
9395uvwasi_errno_t uvwasi_environ_sizes_get (uvwasi_t * uvwasi ,
94- size_t * environ_count ,
95- size_t * environ_buf_size );
96+ uvwasi_size_t * environ_count ,
97+ uvwasi_size_t * environ_buf_size );
9698uvwasi_errno_t uvwasi_fd_advise (uvwasi_t * uvwasi ,
9799 uvwasi_fd_t fd ,
98100 uvwasi_filesize_t offset ,
@@ -129,33 +131,33 @@ uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi,
129131uvwasi_errno_t uvwasi_fd_pread (uvwasi_t * uvwasi ,
130132 uvwasi_fd_t fd ,
131133 const uvwasi_iovec_t * iovs ,
132- size_t iovs_len ,
134+ uvwasi_size_t iovs_len ,
133135 uvwasi_filesize_t offset ,
134- size_t * nread );
136+ uvwasi_size_t * nread );
135137uvwasi_errno_t uvwasi_fd_prestat_get (uvwasi_t * uvwasi ,
136138 uvwasi_fd_t fd ,
137139 uvwasi_prestat_t * buf );
138140uvwasi_errno_t uvwasi_fd_prestat_dir_name (uvwasi_t * uvwasi ,
139141 uvwasi_fd_t fd ,
140142 char * path ,
141- size_t path_len );
143+ uvwasi_size_t path_len );
142144uvwasi_errno_t uvwasi_fd_pwrite (uvwasi_t * uvwasi ,
143145 uvwasi_fd_t fd ,
144146 const uvwasi_ciovec_t * iovs ,
145- size_t iovs_len ,
147+ uvwasi_size_t iovs_len ,
146148 uvwasi_filesize_t offset ,
147- size_t * nwritten );
149+ uvwasi_size_t * nwritten );
148150uvwasi_errno_t uvwasi_fd_read (uvwasi_t * uvwasi ,
149151 uvwasi_fd_t fd ,
150152 const uvwasi_iovec_t * iovs ,
151- size_t iovs_len ,
152- size_t * nread );
153+ uvwasi_size_t iovs_len ,
154+ uvwasi_size_t * nread );
153155uvwasi_errno_t uvwasi_fd_readdir (uvwasi_t * uvwasi ,
154156 uvwasi_fd_t fd ,
155157 void * buf ,
156- size_t buf_len ,
158+ uvwasi_size_t buf_len ,
157159 uvwasi_dircookie_t cookie ,
158- size_t * bufused );
160+ uvwasi_size_t * bufused );
159161uvwasi_errno_t uvwasi_fd_renumber (uvwasi_t * uvwasi ,
160162 uvwasi_fd_t from ,
161163 uvwasi_fd_t to );
@@ -171,39 +173,39 @@ uvwasi_errno_t uvwasi_fd_tell(uvwasi_t* uvwasi,
171173uvwasi_errno_t uvwasi_fd_write (uvwasi_t * uvwasi ,
172174 uvwasi_fd_t fd ,
173175 const uvwasi_ciovec_t * iovs ,
174- size_t iovs_len ,
175- size_t * nwritten );
176+ uvwasi_size_t iovs_len ,
177+ uvwasi_size_t * nwritten );
176178uvwasi_errno_t uvwasi_path_create_directory (uvwasi_t * uvwasi ,
177179 uvwasi_fd_t fd ,
178180 const char * path ,
179- size_t path_len );
181+ uvwasi_size_t path_len );
180182uvwasi_errno_t uvwasi_path_filestat_get (uvwasi_t * uvwasi ,
181183 uvwasi_fd_t fd ,
182184 uvwasi_lookupflags_t flags ,
183185 const char * path ,
184- size_t path_len ,
186+ uvwasi_size_t path_len ,
185187 uvwasi_filestat_t * buf );
186188uvwasi_errno_t uvwasi_path_filestat_set_times (uvwasi_t * uvwasi ,
187189 uvwasi_fd_t fd ,
188190 uvwasi_lookupflags_t flags ,
189191 const char * path ,
190- size_t path_len ,
192+ uvwasi_size_t path_len ,
191193 uvwasi_timestamp_t st_atim ,
192194 uvwasi_timestamp_t st_mtim ,
193195 uvwasi_fstflags_t fst_flags );
194196uvwasi_errno_t uvwasi_path_link (uvwasi_t * uvwasi ,
195197 uvwasi_fd_t old_fd ,
196198 uvwasi_lookupflags_t old_flags ,
197199 const char * old_path ,
198- size_t old_path_len ,
200+ uvwasi_size_t old_path_len ,
199201 uvwasi_fd_t new_fd ,
200202 const char * new_path ,
201- size_t new_path_len );
203+ uvwasi_size_t new_path_len );
202204uvwasi_errno_t uvwasi_path_open (uvwasi_t * uvwasi ,
203205 uvwasi_fd_t dirfd ,
204206 uvwasi_lookupflags_t dirflags ,
205207 const char * path ,
206- size_t path_len ,
208+ uvwasi_size_t path_len ,
207209 uvwasi_oflags_t o_flags ,
208210 uvwasi_rights_t fs_rights_base ,
209211 uvwasi_rights_t fs_rights_inheriting ,
@@ -212,53 +214,55 @@ uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi,
212214uvwasi_errno_t uvwasi_path_readlink (uvwasi_t * uvwasi ,
213215 uvwasi_fd_t fd ,
214216 const char * path ,
215- size_t path_len ,
217+ uvwasi_size_t path_len ,
216218 char * buf ,
217- size_t buf_len ,
218- size_t * bufused );
219+ uvwasi_size_t buf_len ,
220+ uvwasi_size_t * bufused );
219221uvwasi_errno_t uvwasi_path_remove_directory (uvwasi_t * uvwasi ,
220222 uvwasi_fd_t fd ,
221223 const char * path ,
222- size_t path_len );
224+ uvwasi_size_t path_len );
223225uvwasi_errno_t uvwasi_path_rename (uvwasi_t * uvwasi ,
224226 uvwasi_fd_t old_fd ,
225227 const char * old_path ,
226- size_t old_path_len ,
228+ uvwasi_size_t old_path_len ,
227229 uvwasi_fd_t new_fd ,
228230 const char * new_path ,
229- size_t new_path_len );
231+ uvwasi_size_t new_path_len );
230232uvwasi_errno_t uvwasi_path_symlink (uvwasi_t * uvwasi ,
231233 const char * old_path ,
232- size_t old_path_len ,
234+ uvwasi_size_t old_path_len ,
233235 uvwasi_fd_t fd ,
234236 const char * new_path ,
235- size_t new_path_len );
237+ uvwasi_size_t new_path_len );
236238uvwasi_errno_t uvwasi_path_unlink_file (uvwasi_t * uvwasi ,
237239 uvwasi_fd_t fd ,
238240 const char * path ,
239- size_t path_len );
241+ uvwasi_size_t path_len );
240242uvwasi_errno_t uvwasi_poll_oneoff (uvwasi_t * uvwasi ,
241243 const uvwasi_subscription_t * in ,
242244 uvwasi_event_t * out ,
243- size_t nsubscriptions ,
244- size_t * nevents );
245+ uvwasi_size_t nsubscriptions ,
246+ uvwasi_size_t * nevents );
245247uvwasi_errno_t uvwasi_proc_exit (uvwasi_t * uvwasi , uvwasi_exitcode_t rval );
246248uvwasi_errno_t uvwasi_proc_raise (uvwasi_t * uvwasi , uvwasi_signal_t sig );
247- uvwasi_errno_t uvwasi_random_get (uvwasi_t * uvwasi , void * buf , size_t buf_len );
249+ uvwasi_errno_t uvwasi_random_get (uvwasi_t * uvwasi ,
250+ void * buf ,
251+ uvwasi_size_t buf_len );
248252uvwasi_errno_t uvwasi_sched_yield (uvwasi_t * uvwasi );
249253uvwasi_errno_t uvwasi_sock_recv (uvwasi_t * uvwasi ,
250254 uvwasi_fd_t sock ,
251255 const uvwasi_iovec_t * ri_data ,
252- size_t ri_data_len ,
256+ uvwasi_size_t ri_data_len ,
253257 uvwasi_riflags_t ri_flags ,
254- size_t * ro_datalen ,
258+ uvwasi_size_t * ro_datalen ,
255259 uvwasi_roflags_t * ro_flags );
256260uvwasi_errno_t uvwasi_sock_send (uvwasi_t * uvwasi ,
257261 uvwasi_fd_t sock ,
258262 const uvwasi_ciovec_t * si_data ,
259- size_t si_data_len ,
263+ uvwasi_size_t si_data_len ,
260264 uvwasi_siflags_t si_flags ,
261- size_t * so_datalen );
265+ uvwasi_size_t * so_datalen );
262266uvwasi_errno_t uvwasi_sock_shutdown (uvwasi_t * uvwasi ,
263267 uvwasi_fd_t sock ,
264268 uvwasi_sdflags_t how );
0 commit comments