wasm-micro-runtime/core/shared/platform
Wenyong Huang 0ee5ffce85
Refactor APIs and data structures as preliminary work for Memory64 (#3209)
# Change the data type representing linear memory address from u32 to u64

## APIs signature changes
- (Export)wasm_runtime_module_malloc
  - wasm_module_malloc
    - wasm_module_malloc_internal
  - aot_module_malloc
    - aot_module_malloc_internal
- wasm_runtime_module_realloc
  - wasm_module_realloc
    - wasm_module_realloc_internal
  - aot_module_realloc
    - aot_module_realloc_internal
- (Export)wasm_runtime_module_free
  - wasm_module_free
    - wasm_module_free_internal
  - aot_module_malloc
    - aot_module_free_internal
- (Export)wasm_runtime_module_dup_data
  - wasm_module_dup_data
  - aot_module_dup_data
- (Export)wasm_runtime_validate_app_addr
- (Export)wasm_runtime_validate_app_str_addr
- (Export)wasm_runtime_validate_native_addr
- (Export)wasm_runtime_addr_app_to_native
- (Export)wasm_runtime_addr_native_to_app
- (Export)wasm_runtime_get_app_addr_range
- aot_set_aux_stack
- aot_get_aux_stack
- wasm_set_aux_stack
- wasm_get_aux_stack
- aot_check_app_addr_and_convert, wasm_check_app_addr_and_convert
  and jit_check_app_addr_and_convert
- wasm_exec_env_set_aux_stack
- wasm_exec_env_get_aux_stack
- wasm_cluster_create_thread
- wasm_cluster_allocate_aux_stack
- wasm_cluster_free_aux_stack

## Data structure changes
- WASMModule and AOTModule
  - field aux_data_end, aux_heap_base and aux_stack_bottom
- WASMExecEnv
  - field aux_stack_boundary and aux_stack_bottom
- AOTCompData
  - field aux_data_end, aux_heap_base and aux_stack_bottom
- WASMMemoryInstance(AOTMemoryInstance)
  - field memory_data_size and change __padding to is_memory64
- WASMModuleInstMemConsumption
  - field total_size and memories_size
- WASMDebugExecutionMemory
  - field start_offset and current_pos
- WASMCluster
  - field stack_tops

## Components that are affected by the APIs and data structure changes
- libc-builtin
- libc-emcc
- libc-uvwasi
- libc-wasi
- Python and Go Language Embedding
- Interpreter Debug engine
- Multi-thread: lib-pthread, wasi-threads and thread manager
2024-03-12 11:38:50 +08:00
..
alios Enhancements on wasm function execution time statistic (#2985) 2024-01-17 09:51:54 +08:00
android Add vprintf override for android and esp-idf (#3174) 2024-02-22 17:02:46 +08:00
common Refactor APIs and data structures as preliminary work for Memory64 (#3209) 2024-03-12 11:38:50 +08:00
cosmopolitan cosmopolitan: Update compiler and update platform_internal.h (#3079) 2024-01-24 16:04:48 +08:00
darwin Always allocate linear memory using mmap (#3052) 2024-02-02 22:17:44 +08:00
ego Make a workaround for EGO when fstat returns NOT_SUPPORT (#1970) 2023-02-21 11:11:27 +08:00
esp-idf Add vprintf override for android and esp-idf (#3174) 2024-02-22 17:02:46 +08:00
freebsd Allow using mmap for shared memory if hw bound check is disabled (#3029) 2024-01-16 22:15:55 +08:00
include shared-platform: Remove dependency on shared-utils' bh_memory_remap_slow (#3153) 2024-02-17 13:44:33 +08:00
linux Allow using mmap for shared memory if hw bound check is disabled (#3029) 2024-01-16 22:15:55 +08:00
linux-sgx Always allocate linear memory using mmap (#3052) 2024-02-02 22:17:44 +08:00
nuttx Zero the memory mapped from os_mmap in NuttX (#3132) 2024-02-05 15:45:22 +08:00
riot Enhancements on wasm function execution time statistic (#2985) 2024-01-17 09:51:54 +08:00
rt-thread Enhancements on wasm function execution time statistic (#2985) 2024-01-17 09:51:54 +08:00
vxworks Allow using mmap for shared memory if hw bound check is disabled (#3029) 2024-01-16 22:15:55 +08:00
windows Implement the remaining Windows filesystem functions (#3166) 2024-02-28 11:02:42 +08:00
zephyr zephyr: Implement Alloc_With_System_Allocator (#3179) 2024-02-28 11:18:23 +08:00
README.md re-org platform APIs, simplify porting process (#201) 2020-03-16 16:43:57 +08:00

This folder contains the platform abstract layer for multiple platforms. To support a new platform, you can simply create a new folder here and implement all the APIs defined in include folder.

Refer to port_wamr.md for how to port WAMR to a target platform.