diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:22 +0000 |
commit | c21c3b0befeb46a51b6bf3758ffa30813bea0ff0 (patch) | |
tree | 9754ff1ca740f6346cf8483ec915d4054bc5da2d /fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/core/app-mgr/app-manager/module_wasm_app.h | |
parent | Adding upstream version 1.43.2. (diff) | |
download | netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.tar.xz netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.zip |
Adding upstream version 1.44.3.upstream/1.44.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/core/app-mgr/app-manager/module_wasm_app.h')
-rw-r--r-- | fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/core/app-mgr/app-manager/module_wasm_app.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/core/app-mgr/app-manager/module_wasm_app.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/core/app-mgr/app-manager/module_wasm_app.h new file mode 100644 index 000000000..8a7ae4e54 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/core/app-mgr/app-manager/module_wasm_app.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _MODULE_WASM_APP_H_ +#define _MODULE_WASM_APP_H_ + +#include "bh_queue.h" +#include "app_manager_export.h" +#include "wasm_export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define SECTION_TYPE_USER 0 +#define SECTION_TYPE_TYPE 1 +#define SECTION_TYPE_IMPORT 2 +#define SECTION_TYPE_FUNC 3 +#define SECTION_TYPE_TABLE 4 +#define SECTION_TYPE_MEMORY 5 +#define SECTION_TYPE_GLOBAL 6 +#define SECTION_TYPE_EXPORT 7 +#define SECTION_TYPE_START 8 +#define SECTION_TYPE_ELEM 9 +#define SECTION_TYPE_CODE 10 +#define SECTION_TYPE_DATA 11 + +typedef enum AOTSectionType { + AOT_SECTION_TYPE_TARGET_INFO = 0, + AOT_SECTION_TYPE_INIT_DATA = 1, + AOT_SECTION_TYPE_TEXT = 2, + AOT_SECTION_TYPE_FUNCTION = 3, + AOT_SECTION_TYPE_EXPORT = 4, + AOT_SECTION_TYPE_RELOCATION = 5, + AOT_SECTION_TYPE_SIGANATURE = 6, + AOT_SECTION_TYPE_CUSTOM = 100, +} AOTSectionType; + +enum { + WASM_Msg_Start = BASE_EVENT_MAX, + TIMER_EVENT_WASM, + SENSOR_EVENT_WASM, + CONNECTION_EVENT_WASM, + WIDGET_EVENT_WASM, + WASM_Msg_End = WASM_Msg_Start + 100 +}; + +typedef struct wasm_data { + /* for easily access the containing wasm module */ + wasm_module_t wasm_module; + wasm_module_inst_t wasm_module_inst; + /* Permissions of the WASM app */ + char *perms; + /* thread list mapped with this WASM module */ + korp_tid thread_id; + /* for easily access the containing module data */ + module_data *m_data; + /* is bytecode or aot */ + bool is_bytecode; + /* sections of wasm bytecode or aot file */ + void *sections; + /* execution environment */ + wasm_exec_env_t exec_env; +} wasm_data; + +/* sensor event */ +typedef struct _sensor_event_data { + uint32 sensor_id; + + int data_fmt; + /* event of attribute container from context core */ + void *data; +} sensor_event_data_t; + +/* WASM Bytecode File */ +typedef struct wasm_bytecode_file { + /* magics */ + int magic; + /* current version */ + int version; + /* WASM section list */ + wasm_section_list_t sections; + /* Last WASM section in the list */ + wasm_section_t *section_end; +} wasm_bytecode_file_t; + +/* WASM AOT File */ +typedef struct wasm_aot_file { + /* magics */ + int magic; + /* current version */ + int version; + /* AOT section list */ + aot_section_list_t sections; + /* Last AOT section in the list */ + aot_section_t *section_end; +} wasm_aot_file_t; + +/* WASM App File */ +typedef struct wasm_app_file_t { + union { + wasm_bytecode_file_t bytecode; + wasm_aot_file_t aot; + } u; +} wasm_app_file_t; + +extern module_interface wasm_app_module_interface; + +typedef void (*message_type_handler_t)(module_data *m_data, bh_message_t msg); +extern bool +wasm_register_msg_callback(int msg_type, + message_type_handler_t message_handler); + +typedef void (*resource_cleanup_handler_t)(uint32 module_id); +extern bool +wasm_register_cleanup_callback(resource_cleanup_handler_t handler); + +/** + * Set WASI root dir for modules. On each wasm app installation, a sub dir named + * with the app's name will be created autamically. That wasm app can only + * access this sub dir. + * + * @param root_dir the root dir to set + * @return true for success, false otherwise + */ +bool +wasm_set_wasi_root_dir(const char *root_dir); + +/** + * Get WASI root dir + * + * @return the WASI root dir + */ +const char * +wasm_get_wasi_root_dir(); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif /* _MODULE_WASM_APP_H_ */ |