From c69d395ab555c96466b29c4798355224dff8eb78 Mon Sep 17 00:00:00 2001 From: Dennis Ranke Date: Wed, 29 Mar 2023 18:29:04 +0200 Subject: [PATCH] initial commit, unpacking platform.uw8 --- .gitignore | 2 ++ .gitmodules | 3 +++ Makefile | 16 ++++++++++++++++ loader.wasm | Bin 0 -> 1269 bytes main.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ platform.uw8 | Bin 0 -> 3892 bytes wasm3 | 1 + 7 files changed, 69 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 100644 loader.wasm create mode 100644 main.c create mode 100644 platform.uw8 create mode 160000 wasm3 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4cacef2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.o +/wasm3-test diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f5a4703 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "wasm3"] + path = wasm3 + url = https://github.com/wasm3/wasm3.git diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d834f76 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +WASM3_C := $(wildcard wasm3/source/*.c) +WASM3_O := $(WASM3_C:.c=.o) + +run: wasm3-test .PHONY + ./wasm3-test + +wasm3-test: main.o $(WASM3_O) + gcc -g -lm -o wasm3-test $^ + +wasm3/source/%.o: wasm3/source/%.c + gcc -g -c -o $@ $^ + +main.o: main.c + gcc -g -c -o main.o main.c + +.PHONY: \ No newline at end of file diff --git a/loader.wasm b/loader.wasm new file mode 100644 index 0000000000000000000000000000000000000000..83425e2095c469579b1e332e8906775cf66e5800 GIT binary patch literal 1269 zcmYLHdr(wW96pb`dsi;P&0-w1^4!ZhJ$w-8XrX`XDK!#9o*|XIjBxG(8_TW;MRy@q zN)jDrNSsV8h6tg?c$m)MC=+6e3t}^sBoJB@HI0lpC_ek$#Tn<$oags_zwh_mgE9;A zFhU522pL$%dIr&rk?OjRG7uucm}cj1Gv{UJIh@4=33QePzyv7NEK?nGBt0C&P-4k- zWWJT|E_xoJ0C)ZtN8UTm?7~7MSg;syz+^d%v8Z#j1R;*?DzKvk8$-bo_nZ_N(iFll z#|46oV_tSrlm&&Dj4O^9lBvWI_f!OPi%j{46~PMS7DX^{iiz5oiIHeV!%!?Ufjpxy zY;b}U6W}w+L^W%QU;v^Y0@fM#lu;RL3Y9(Qz2){BA9!?fB+RC5J5gzT8@bh6lg`0&0qujmz=?l5r_xMfn|mGGfv*BD_LtqSusE8xJN z2>+ps;XI*dWmbD?qT@>W*oNmiJMG>_Ud}mP*9*Z3bnRGX>-qc%Hnvz2k1}a?hBP-T;F7+uNgkMHU zi3eMzpOCYb{2ORGGxqG9o`Y>m`)(IZO$VgcNj3TH``6UgsX+;r$LD#2QWDn&#6p$ z%M%YYzpX!YylfzCf%oIlul3P@YjHyvueMHIP$S--*c>0%($;^y_J`!5FEX0n-L^8N zYxlVFlHNhYQWnm=y^)`o+>Kt(zUvbccO!2+^LO|}&Cx2~N2Ny|ZEWgz{p=2#P}03~ z!J(&b#*eGM#;y43H#ZjV#uv{GzR^_udr^@qXX(g$=f?kw`E}0={nvWG{JA`0)y0Mr zF2UhicHGJ$Er+K^CSLn?=&{)7_*asC^Gtqf+1PHou#4{Lw00b8tSXORH2KeGV{KpE F`X5n3YQX>i literal 0 HcmV?d00001 diff --git a/main.c b/main.c new file mode 100644 index 0000000..493ca74 --- /dev/null +++ b/main.c @@ -0,0 +1,47 @@ +#include "wasm3/source/wasm3.h" +#include "wasm3/source/m3_env.h" +#include +#include + +void* loadFile(size_t* sizeOut, const char* filename) { + FILE* file = fopen(filename, "rb"); + fseek(file, 0, SEEK_END); + size_t size = (size_t)ftell(file); + rewind(file); + + void* buffer = malloc(size); + fread(buffer, size, 1, file); + fclose(file); + *sizeOut = size; + return buffer; +} + +int main() { + IM3Environment env = m3_NewEnvironment(); + IM3Runtime runtime = m3_NewRuntime(env, 16384, NULL); + runtime->memory.maxPages = 4; + ResizeMemory(runtime, 4); + + uint8_t* memory = m3_GetMemory(runtime, NULL, 0); + + size_t loaderSize; + void* loaderWasm = loadFile(&loaderSize, "loader.wasm"); + + IM3Module loaderMod; + m3_ParseModule(env, &loaderMod, loaderWasm, loaderSize); + loaderMod->memoryImported = true; + m3_LoadModule(runtime, loaderMod); + + size_t runtimeUw8Size; + void* runtimeUw8 = loadFile(&runtimeUw8Size, "platform.uw8"); + memcpy(memory, runtimeUw8, runtimeUw8Size); + + IM3Function loadUw8; + m3_FindFunction(&loadUw8, runtime, "load_uw8"); + m3_CallV(loadUw8, (uint32_t)runtimeUw8Size); + uint32_t runtimeSize; + m3_GetResultsV(loadUw8, &runtimeSize); + printf("size: %u\n", runtimeSize); + + return 0; +} diff --git a/platform.uw8 b/platform.uw8 new file mode 100644 index 0000000000000000000000000000000000000000..2425d513c13e60795216e9ef3226b268e9486756 GIT binary patch literal 3892 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 C>cf8k literal 0 HcmV?d00001 diff --git a/wasm3 b/wasm3 new file mode 160000 index 0000000..772f8f4 --- /dev/null +++ b/wasm3 @@ -0,0 +1 @@ +Subproject commit 772f8f4648fcba75f77f894a6050db121e7651a2