summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/wasm-c-api/src/utils/multi_module_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/wasm-c-api/src/utils/multi_module_utils.c')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/wasm-c-api/src/utils/multi_module_utils.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/wasm-c-api/src/utils/multi_module_utils.c b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/wasm-c-api/src/utils/multi_module_utils.c
new file mode 100644
index 000000000..67010914b
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/wasm-c-api/src/utils/multi_module_utils.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2019 Intel Corporation. All rights reserved.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ */
+
+#include "bh_read_file.h"
+#include "wasm_export.h"
+
+static char *
+build_module_path(const char *module_name)
+{
+ const char *module_search_path = ".";
+ const char *format = "%s/%s.wasm";
+ int sz = strlen(module_search_path) + strlen("/") + strlen(module_name)
+ + strlen(".wasm") + 1;
+ char *wasm_file_name = BH_MALLOC(sz);
+ if (!wasm_file_name) {
+ return NULL;
+ }
+
+ snprintf(wasm_file_name, sz, format, module_search_path, module_name);
+ return wasm_file_name;
+}
+
+bool
+reader(const char *module_name, uint8 **p_buffer, uint32 *p_size)
+{
+ char *wasm_file_path = build_module_path(module_name);
+ if (!wasm_file_path) {
+ return false;
+ }
+
+ *p_buffer = (uint8_t *)bh_read_file_to_buffer(wasm_file_path, p_size);
+ BH_FREE(wasm_file_path);
+ return *p_buffer != NULL;
+}
+
+void
+destroyer(uint8 *buffer, uint32 size)
+{
+ if (!buffer) {
+ return;
+ }
+
+ BH_FREE(buffer);
+ buffer = NULL;
+}