mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
;; Copyright (C) 2024 YAMAMOTO Takashi
|
|
;; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
(module
|
|
(func $fd_read (import "wasi_snapshot_preview1" "fd_read") (param i32 i32 i32 i32) (result i32))
|
|
(func $block_forever (export "block_forever")
|
|
;; read from FD 0
|
|
i32.const 100 ;; iov_base
|
|
i32.const 200 ;; buffer
|
|
i32.store
|
|
i32.const 104 ;; iov_len
|
|
i32.const 1
|
|
i32.store
|
|
i32.const 0 ;; fd 0
|
|
i32.const 100 ;; iov_base
|
|
i32.const 1 ;; iov count
|
|
i32.const 300 ;; retp (out)
|
|
call $fd_read
|
|
unreachable
|
|
)
|
|
(func (export "_start")
|
|
call $block_forever
|
|
)
|
|
|
|
;; a dumb malloc/free implementation
|
|
(func (export "malloc") (param i32) (result i32)
|
|
local.get 0
|
|
i32.const 65535
|
|
i32.add
|
|
i32.const 65536
|
|
i32.div_u
|
|
memory.grow
|
|
local.set 0
|
|
local.get 0
|
|
i32.const -1
|
|
i32.eq
|
|
if
|
|
i32.const 0
|
|
return
|
|
end
|
|
local.get 0
|
|
i32.const 65536
|
|
i32.mul
|
|
)
|
|
(func (export "free") (param i32))
|
|
|
|
(memory (export "memory") 1)
|
|
|
|
;; fake globals to make wasm_set_aux_stack happy
|
|
(global (export "__heap_base") i32 (i32.const 0x10000))
|
|
(global (export "__data_end") i32 (i32.const 0x10000))
|
|
(global (mut i32) (i32.const 0x10000))
|
|
)
|