From 24978af6960f24d74f738b26f89521cb1e6074b7 Mon Sep 17 00:00:00 2001 From: vms Date: Wed, 14 Aug 2019 17:58:50 +0300 Subject: [PATCH] better multimodules support for Rust backend --- Makefile | 2 +- Readme.md | 2 +- src/wrapper.c | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 5c78835..35d6c45 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ SYSROOT = /opt/wasi-sdk/share/wasi-sysroot TARGET_TRIPLE = wasm32-unknown-wasi CFLAGS = -nostartfiles -fvisibility=hidden LDFLAGS = -Wl,--no-entry,--demangle,--allow-undefined -EXPORT_FUNCS = --export=allocate,--export=deallocate,--export=invoke,--export=load,--export=store +EXPORT_FUNCS = --export=allocate,--export=deallocate,--export=invoke,--export=load,--export=store,--export=sqlite_allocate,--export=sqlite_deallocate,--export=sqlite_invoke,--export=sqlite_load,--export=sqlite_store SQLITE_SRC = src/alter.c src/analyze.c src/attach.c src/auth.c src/backup.c src/bitvec.c src/btmutex.c src/btree.c src/build.c src/callback.c src/complete.c src/ctime.c src/date.c src/dbpage.c src/dbstat.c src/delete.c src/expr.c src/fault.c src/fkey.c src/fts3.c src/fts3_write.c src/fts3_aux.c src/fts3_expr.c src/fts3_hash.c src/fts3_icu.c src/fts3_porter.c src/fts3_snippet.c src/fts3_tokenize_vtab.c src/fts3_tokenizer.c src/fts3_tokenizer1.c src/fts3_unicode.c src/fts3_unicode2.c src/fts5.c src/func.c src/global.c src/hash.c src/insert.c src/json1.c src/legacy.c src/loadext.c src/main.c src/malloc.c src/memdb.c src/mem0.c src/mem1.c src/mem2.c src/memjournal.c src/notify.c src/opcodes.c src/os.c src/pager.c src/parse.c src/pcache.c src/pcache1.c src/pragma.c src/prepare.c src/printf.c src/random.c src/resolve.c src/rowset.c src/rtree.c src/select.c src/sqlite3session.c src/status.c src/stmt.c src/table.c src/tokenize.c src/treeview.c src/trigger.c src/update.c src/upsert.c src/userauth.c src/utf.c src/util.c src/vacuum.c src/vdbe.c src/vdbeapi.c src/vdbeaux.c src/vdbeblob.c src/vdbemem.c src/vdbesort.c src/vdbetrace.c src/vtab.c src/wal.c src/walker.c src/where.c src/wherecode.c src/whereexpr.c src/window.c WRAPPER_SRC = src/wrapper.c SQLITE_FLAGS = -DSQLITE_CORE -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=0 -DHAVE_READLINE=0 -DHAVE_EDITLINE=0 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION -DSQLITE_ENABLE_STMTVTAB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_DESERIALIZE -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_OMIT_POPEN diff --git a/Readme.md b/Readme.md index 201f49c..b6a9b2c 100644 --- a/Readme.md +++ b/Readme.md @@ -1,6 +1,6 @@ # SQLite -Sqlite fork ported to WebAssembly. +Sqlite fork ported to WebAssembly and adapted for the Fluence network. # How to build diff --git a/src/wrapper.c b/src/wrapper.c index 5901730..ae5a5eb 100644 --- a/src/wrapper.c +++ b/src/wrapper.c @@ -19,18 +19,34 @@ void store(char *ptr, unsigned char byte) { *ptr = byte; } +void sqlite_store(char *ptr, unsigned char byte) { + store(ptr, byte); +} + unsigned char load(const unsigned char *ptr) { return *ptr; } +unsigned char sqlite_load(const unsigned char *ptr) { + return load(ptr); +} + void* allocate(size_t size) { return malloc(size + 1); } +void* sqlite_allocate(size_t size) { + return allocate(size); +} + void deallocate(void *ptr, int size) { free(ptr); } +void sqlite_deallocate(void *ptr, int size) { + deallocate(ptr, size); +} + char *write_response(char *response, int response_size) { char *result_response = allocate(response_size + 4); @@ -151,3 +167,7 @@ const char *invoke(char *request, int request_size) { return response; } + +const char *sqlite_invoke(char *request, int request_size) { + return invoke(request, request_size); +}