Skip to content

Commit 4e9b4e0

Browse files
authored
fix: explicitly export symbols (#308)
So it can be consumed as a shared lib.
1 parent 8a3e77d commit 4e9b4e0

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

include/uvwasi.h

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,124 +77,159 @@ typedef struct uvwasi_options_s {
7777
} uvwasi_options_t;
7878

7979
/* Embedder API. */
80+
UVWASI_EXPORT
8081
uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options);
82+
UVWASI_EXPORT
8183
void uvwasi_destroy(uvwasi_t* uvwasi);
84+
UVWASI_EXPORT
8285
void uvwasi_options_init(uvwasi_options_t* options);
8386
/* Use int instead of uv_file to avoid needing uv.h */
87+
UVWASI_EXPORT
8488
uvwasi_errno_t uvwasi_embedder_remap_fd(uvwasi_t* uvwasi,
8589
const uvwasi_fd_t fd,
8690
int new_host_fd);
91+
UVWASI_EXPORT
8792
const char* uvwasi_embedder_err_code_to_string(uvwasi_errno_t code);
8893

8994

9095
/* WASI system call API. */
96+
UVWASI_EXPORT
9197
uvwasi_errno_t uvwasi_args_get(uvwasi_t* uvwasi, char** argv, char* argv_buf);
98+
UVWASI_EXPORT
9299
uvwasi_errno_t uvwasi_args_sizes_get(uvwasi_t* uvwasi,
93100
uvwasi_size_t* argc,
94101
uvwasi_size_t* argv_buf_size);
102+
UVWASI_EXPORT
95103
uvwasi_errno_t uvwasi_clock_res_get(uvwasi_t* uvwasi,
96104
uvwasi_clockid_t clock_id,
97105
uvwasi_timestamp_t* resolution);
106+
UVWASI_EXPORT
98107
uvwasi_errno_t uvwasi_clock_time_get(uvwasi_t* uvwasi,
99108
uvwasi_clockid_t clock_id,
100109
uvwasi_timestamp_t precision,
101110
uvwasi_timestamp_t* time);
111+
UVWASI_EXPORT
102112
uvwasi_errno_t uvwasi_environ_get(uvwasi_t* uvwasi,
103113
char** environment,
104114
char* environ_buf);
115+
UVWASI_EXPORT
105116
uvwasi_errno_t uvwasi_environ_sizes_get(uvwasi_t* uvwasi,
106117
uvwasi_size_t* environ_count,
107118
uvwasi_size_t* environ_buf_size);
119+
UVWASI_EXPORT
108120
uvwasi_errno_t uvwasi_fd_advise(uvwasi_t* uvwasi,
109121
uvwasi_fd_t fd,
110122
uvwasi_filesize_t offset,
111123
uvwasi_filesize_t len,
112124
uvwasi_advice_t advice);
125+
UVWASI_EXPORT
113126
uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi,
114127
uvwasi_fd_t fd,
115128
uvwasi_filesize_t offset,
116129
uvwasi_filesize_t len);
130+
UVWASI_EXPORT
117131
uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd);
132+
UVWASI_EXPORT
118133
uvwasi_errno_t uvwasi_fd_datasync(uvwasi_t* uvwasi, uvwasi_fd_t fd);
134+
UVWASI_EXPORT
119135
uvwasi_errno_t uvwasi_fd_fdstat_get(uvwasi_t* uvwasi,
120136
uvwasi_fd_t fd,
121137
uvwasi_fdstat_t* buf);
138+
UVWASI_EXPORT
122139
uvwasi_errno_t uvwasi_fd_fdstat_set_flags(uvwasi_t* uvwasi,
123140
uvwasi_fd_t fd,
124141
uvwasi_fdflags_t flags);
142+
UVWASI_EXPORT
125143
uvwasi_errno_t uvwasi_fd_fdstat_set_rights(uvwasi_t* uvwasi,
126144
uvwasi_fd_t fd,
127145
uvwasi_rights_t fs_rights_base,
128146
uvwasi_rights_t fs_rights_inheriting
129147
);
148+
UVWASI_EXPORT
130149
uvwasi_errno_t uvwasi_fd_filestat_get(uvwasi_t* uvwasi,
131150
uvwasi_fd_t fd,
132151
uvwasi_filestat_t* buf);
152+
UVWASI_EXPORT
133153
uvwasi_errno_t uvwasi_fd_filestat_set_size(uvwasi_t* uvwasi,
134154
uvwasi_fd_t fd,
135155
uvwasi_filesize_t st_size);
156+
UVWASI_EXPORT
136157
uvwasi_errno_t uvwasi_fd_filestat_set_times(uvwasi_t* uvwasi,
137158
uvwasi_fd_t fd,
138159
uvwasi_timestamp_t st_atim,
139160
uvwasi_timestamp_t st_mtim,
140161
uvwasi_fstflags_t fst_flags);
162+
UVWASI_EXPORT
141163
uvwasi_errno_t uvwasi_fd_pread(uvwasi_t* uvwasi,
142164
uvwasi_fd_t fd,
143165
const uvwasi_iovec_t* iovs,
144166
uvwasi_size_t iovs_len,
145167
uvwasi_filesize_t offset,
146168
uvwasi_size_t* nread);
169+
UVWASI_EXPORT
147170
uvwasi_errno_t uvwasi_fd_prestat_get(uvwasi_t* uvwasi,
148171
uvwasi_fd_t fd,
149172
uvwasi_prestat_t* buf);
173+
UVWASI_EXPORT
150174
uvwasi_errno_t uvwasi_fd_prestat_dir_name(uvwasi_t* uvwasi,
151175
uvwasi_fd_t fd,
152176
char* path,
153177
uvwasi_size_t path_len);
178+
UVWASI_EXPORT
154179
uvwasi_errno_t uvwasi_fd_pwrite(uvwasi_t* uvwasi,
155180
uvwasi_fd_t fd,
156181
const uvwasi_ciovec_t* iovs,
157182
uvwasi_size_t iovs_len,
158183
uvwasi_filesize_t offset,
159184
uvwasi_size_t* nwritten);
185+
UVWASI_EXPORT
160186
uvwasi_errno_t uvwasi_fd_read(uvwasi_t* uvwasi,
161187
uvwasi_fd_t fd,
162188
const uvwasi_iovec_t* iovs,
163189
uvwasi_size_t iovs_len,
164190
uvwasi_size_t* nread);
191+
UVWASI_EXPORT
165192
uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
166193
uvwasi_fd_t fd,
167194
void* buf,
168195
uvwasi_size_t buf_len,
169196
uvwasi_dircookie_t cookie,
170197
uvwasi_size_t* bufused);
198+
UVWASI_EXPORT
171199
uvwasi_errno_t uvwasi_fd_renumber(uvwasi_t* uvwasi,
172200
uvwasi_fd_t from,
173201
uvwasi_fd_t to);
202+
UVWASI_EXPORT
174203
uvwasi_errno_t uvwasi_fd_seek(uvwasi_t* uvwasi,
175204
uvwasi_fd_t fd,
176205
uvwasi_filedelta_t offset,
177206
uvwasi_whence_t whence,
178207
uvwasi_filesize_t* newoffset);
208+
UVWASI_EXPORT
179209
uvwasi_errno_t uvwasi_fd_sync(uvwasi_t* uvwasi, uvwasi_fd_t fd);
210+
UVWASI_EXPORT
180211
uvwasi_errno_t uvwasi_fd_tell(uvwasi_t* uvwasi,
181212
uvwasi_fd_t fd,
182213
uvwasi_filesize_t* offset);
214+
UVWASI_EXPORT
183215
uvwasi_errno_t uvwasi_fd_write(uvwasi_t* uvwasi,
184216
uvwasi_fd_t fd,
185217
const uvwasi_ciovec_t* iovs,
186218
uvwasi_size_t iovs_len,
187219
uvwasi_size_t* nwritten);
220+
UVWASI_EXPORT
188221
uvwasi_errno_t uvwasi_path_create_directory(uvwasi_t* uvwasi,
189222
uvwasi_fd_t fd,
190223
const char* path,
191224
uvwasi_size_t path_len);
225+
UVWASI_EXPORT
192226
uvwasi_errno_t uvwasi_path_filestat_get(uvwasi_t* uvwasi,
193227
uvwasi_fd_t fd,
194228
uvwasi_lookupflags_t flags,
195229
const char* path,
196230
uvwasi_size_t path_len,
197231
uvwasi_filestat_t* buf);
232+
UVWASI_EXPORT
198233
uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi,
199234
uvwasi_fd_t fd,
200235
uvwasi_lookupflags_t flags,
@@ -203,6 +238,7 @@ uvwasi_errno_t uvwasi_path_filestat_set_times(uvwasi_t* uvwasi,
203238
uvwasi_timestamp_t st_atim,
204239
uvwasi_timestamp_t st_mtim,
205240
uvwasi_fstflags_t fst_flags);
241+
UVWASI_EXPORT
206242
uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi,
207243
uvwasi_fd_t old_fd,
208244
uvwasi_lookupflags_t old_flags,
@@ -211,6 +247,7 @@ uvwasi_errno_t uvwasi_path_link(uvwasi_t* uvwasi,
211247
uvwasi_fd_t new_fd,
212248
const char* new_path,
213249
uvwasi_size_t new_path_len);
250+
UVWASI_EXPORT
214251
uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi,
215252
uvwasi_fd_t dirfd,
216253
uvwasi_lookupflags_t dirflags,
@@ -221,62 +258,76 @@ uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi,
221258
uvwasi_rights_t fs_rights_inheriting,
222259
uvwasi_fdflags_t fs_flags,
223260
uvwasi_fd_t* fd);
261+
UVWASI_EXPORT
224262
uvwasi_errno_t uvwasi_path_readlink(uvwasi_t* uvwasi,
225263
uvwasi_fd_t fd,
226264
const char* path,
227265
uvwasi_size_t path_len,
228266
char* buf,
229267
uvwasi_size_t buf_len,
230268
uvwasi_size_t* bufused);
269+
UVWASI_EXPORT
231270
uvwasi_errno_t uvwasi_path_remove_directory(uvwasi_t* uvwasi,
232271
uvwasi_fd_t fd,
233272
const char* path,
234273
uvwasi_size_t path_len);
274+
UVWASI_EXPORT
235275
uvwasi_errno_t uvwasi_path_rename(uvwasi_t* uvwasi,
236276
uvwasi_fd_t old_fd,
237277
const char* old_path,
238278
uvwasi_size_t old_path_len,
239279
uvwasi_fd_t new_fd,
240280
const char* new_path,
241281
uvwasi_size_t new_path_len);
282+
UVWASI_EXPORT
242283
uvwasi_errno_t uvwasi_path_symlink(uvwasi_t* uvwasi,
243284
const char* old_path,
244285
uvwasi_size_t old_path_len,
245286
uvwasi_fd_t fd,
246287
const char* new_path,
247288
uvwasi_size_t new_path_len);
289+
UVWASI_EXPORT
248290
uvwasi_errno_t uvwasi_path_unlink_file(uvwasi_t* uvwasi,
249291
uvwasi_fd_t fd,
250292
const char* path,
251293
uvwasi_size_t path_len);
294+
UVWASI_EXPORT
252295
uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi,
253296
const uvwasi_subscription_t* in,
254297
uvwasi_event_t* out,
255298
uvwasi_size_t nsubscriptions,
256299
uvwasi_size_t* nevents);
300+
UVWASI_EXPORT
257301
uvwasi_errno_t uvwasi_proc_exit(uvwasi_t* uvwasi, uvwasi_exitcode_t rval);
302+
UVWASI_EXPORT
258303
uvwasi_errno_t uvwasi_proc_raise(uvwasi_t* uvwasi, uvwasi_signal_t sig);
304+
UVWASI_EXPORT
259305
uvwasi_errno_t uvwasi_random_get(uvwasi_t* uvwasi,
260306
void* buf,
261307
uvwasi_size_t buf_len);
308+
UVWASI_EXPORT
262309
uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi);
310+
UVWASI_EXPORT
263311
uvwasi_errno_t uvwasi_sock_accept(uvwasi_t* uvwasi,
264312
uvwasi_fd_t sock,
265313
uvwasi_fdflags_t flags,
266314
uvwasi_fd_t* fd);
315+
UVWASI_EXPORT
267316
uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi,
268317
uvwasi_fd_t sock,
269318
const uvwasi_iovec_t* ri_data,
270319
uvwasi_size_t ri_data_len,
271320
uvwasi_riflags_t ri_flags,
272321
uvwasi_size_t* ro_datalen,
273322
uvwasi_roflags_t* ro_flags);
323+
UVWASI_EXPORT
274324
uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi,
275325
uvwasi_fd_t sock,
276326
const uvwasi_ciovec_t* si_data,
277327
uvwasi_size_t si_data_len,
278328
uvwasi_siflags_t si_flags,
279329
uvwasi_size_t* so_datalen);
330+
UVWASI_EXPORT
280331
uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi,
281332
uvwasi_fd_t sock,
282333
uvwasi_sdflags_t how);

include/wasi_serdes.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,20 +124,24 @@ STRUCT(subscription_t)
124124
#undef STRUCT
125125
#undef IOVS_STRUCT
126126

127+
UVWASI_EXPORT
127128
uvwasi_errno_t uvwasi_serdes_readv_ciovec_t(const void* ptr,
128129
size_t end,
129130
size_t offset,
130131
uvwasi_ciovec_t* iovs,
131132
uvwasi_size_t iovs_len);
132133

134+
UVWASI_EXPORT
133135
uvwasi_errno_t uvwasi_serdes_readv_iovec_t(const void* ptr,
134136
size_t end,
135137
size_t offset,
136138
uvwasi_iovec_t* iovs,
137139
uvwasi_size_t iovs_len);
138140

139141
/* Helper functions for memory bounds checking. */
142+
UVWASI_EXPORT
140143
int uvwasi_serdes_check_bounds(size_t offset, size_t end, size_t size);
144+
UVWASI_EXPORT
141145
int uvwasi_serdes_check_array_bounds(size_t offset,
142146
size_t end,
143147
size_t size,

include/wasi_types.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,4 +322,10 @@ typedef uint8_t uvwasi_whence_t;
322322
#define UVWASI_WHENCE_CUR 1
323323
#define UVWASI_WHENCE_END 2
324324

325+
#if defined(_WIN32) || defined(__CYGWIN__)
326+
#define UVWASI_EXPORT
327+
#else
328+
#define UVWASI_EXPORT __attribute__((visibility("default")))
329+
#endif
330+
325331
#endif /* __UVWASI_WASI_TYPES_H__ */

0 commit comments

Comments
 (0)