From 0a7c874e9c3cb5da99c88ab46e33a648f0b909d2 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 1 Dec 2019 01:28:52 +0100 Subject: deps: update uvwasi PR-URL: https://github.com/nodejs/node/pull/30745 Refs: https://github.com/nodejs/quic/blob/34ee0bc96f804c73cb22b2945a1a78f780938492/src/node_mem.h Refs: https://github.com/nodejs/quic/pull/126 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Rich Trott --- deps/uvwasi/include/fd_table.h | 15 +++++++++++---- deps/uvwasi/include/uvwasi.h | 16 +++++++++++++++- 2 files changed, 26 insertions(+), 5 deletions(-) (limited to 'deps/uvwasi/include') diff --git a/deps/uvwasi/include/fd_table.h b/deps/uvwasi/include/fd_table.h index ef87a3ff8f..42a5f0d920 100644 --- a/deps/uvwasi/include/fd_table.h +++ b/deps/uvwasi/include/fd_table.h @@ -16,6 +16,7 @@ # define PATH_MAX_BYTES (PATH_MAX) #endif +struct uvwasi_s; struct uvwasi_fd_wrap_t { uvwasi_fd_t id; @@ -27,22 +28,28 @@ struct uvwasi_fd_wrap_t { uvwasi_rights_t rights_inheriting; int preopen; int valid; + uv_mutex_t mutex; }; struct uvwasi_fd_table_t { struct uvwasi_fd_wrap_t* fds; uint32_t size; uint32_t used; + uv_rwlock_t rwlock; }; -uvwasi_errno_t uvwasi_fd_table_init(struct uvwasi_fd_table_t* table, +uvwasi_errno_t uvwasi_fd_table_init(struct uvwasi_s* uvwasi, + struct uvwasi_fd_table_t* table, uint32_t init_size); -void uvwasi_fd_table_free(struct uvwasi_fd_table_t* table); -uvwasi_errno_t uvwasi_fd_table_insert_preopen(struct uvwasi_fd_table_t* table, +void uvwasi_fd_table_free(struct uvwasi_s* uvwasi, + struct uvwasi_fd_table_t* table); +uvwasi_errno_t uvwasi_fd_table_insert_preopen(struct uvwasi_s* uvwasi, + struct uvwasi_fd_table_t* table, const uv_file fd, const char* path, const char* real_path); -uvwasi_errno_t uvwasi_fd_table_insert_fd(struct uvwasi_fd_table_t* table, +uvwasi_errno_t uvwasi_fd_table_insert_fd(struct uvwasi_s* uvwasi, + struct uvwasi_fd_table_t* table, const uv_file fd, const int flags, const char* path, diff --git a/deps/uvwasi/include/uvwasi.h b/deps/uvwasi/include/uvwasi.h index a7695734ac..2a4e389164 100644 --- a/deps/uvwasi/include/uvwasi.h +++ b/deps/uvwasi/include/uvwasi.h @@ -20,7 +20,20 @@ extern "C" { #define UVWASI_VERSION_STRING UVWASI_STRINGIFY(UVWASI_VERSION_MAJOR) "." \ UVWASI_STRINGIFY(UVWASI_VERSION_MINOR) "." \ UVWASI_STRINGIFY(UVWASI_VERSION_PATCH) +#define UVWASI_VERSION_WASI "snapshot_0" +typedef void* (*uvwasi_malloc)(size_t size, void* mem_user_data); +typedef void (*uvwasi_free)(void* ptr, void* mem_user_data); +typedef void* (*uvwasi_calloc)(size_t nmemb, size_t size, void* mem_user_data); +typedef void* (*uvwasi_realloc)(void* ptr, size_t size, void* mem_user_data); + +typedef struct uvwasi_mem_s { + void* mem_user_data; + uvwasi_malloc malloc; + uvwasi_free free; + uvwasi_calloc calloc; + uvwasi_realloc realloc; +} uvwasi_mem_t; typedef struct uvwasi_s { struct uvwasi_fd_table_t fds; @@ -32,6 +45,7 @@ typedef struct uvwasi_s { char** env; char* env_buf; size_t env_buf_size; + const uvwasi_mem_t* allocator; } uvwasi_t; typedef struct uvwasi_preopen_s { @@ -46,9 +60,9 @@ typedef struct uvwasi_options_s { size_t argc; char** argv; char** envp; + const uvwasi_mem_t* allocator; } uvwasi_options_t; - // Embedder API. uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, uvwasi_options_t* options); void uvwasi_destroy(uvwasi_t* uvwasi); -- cgit v1.2.3