hspwasm.dll
Version 1.0
Date 2026-04-15
Author IronHSP / hspwasm
目次 (3 グループ / 10 ページ)
hspwasm ― メモリ
wasm_memory_read
linear memory から HSP 変数へ読み出し
wasm モジュールの linear memory から指定バイト数を HSP 変数に
コピーします。範囲外アクセスはエラーとなり何も書きません。
読み出し先変数は予め十分なサイズで確保しておいてください。
wasm_memory_size
linear memory のバイトサイズ取得
wasm モジュールの linear memory の現在のバイト数を返します
(page 数 × 64KB)。
wasm_memory_write
HSP 変数から linear memory に書き込み
HSP 変数の内容を wasm モジュールの linear memory にコピーします。
典型的には wasm 側で alloc(size) を呼んで確保した領域に対して
write して、結果を呼び出し関数にポインタとして渡す用途です。
hspwasm ― ロード / アンロード
wasm_clear
全ハンドルを解放
16 個のスロット全てについて wasm_close 相当の解放を行います。
アプリ終了前のまとめ解放に使います。
wasm_close
ハンドルを解放
Wasm3 のランタイムおよび環境を解放します。ハンドルスロットが
再利用可能になります。
wasm_load
.wasm ファイルをロードしてハンドルを生成
指定パスの .wasm バイナリを読み込み、Wasm3 にパース・リンクして
実行可能な状態にします。成功するとハンドル (0~15) が返ります。
16 個のスロットが全て埋まっている場合は -1 が返ります。
wasm_load_mem
メモリバッファから .wasm をロード
bload や HTTP ダウンロードで HSP 変数に読み込み済みの .wasm を
直接ロードします。戻り値のエラーコード体系は wasm_load と同じ。
hspwasm ― 関数呼び出し
wasm_call_d
wasm 関数を呼び出し (f64 戻り)
f64 戻り値を double 変数に格納します。引数側も f64 を渡したい場合は
v1 では未対応 (v2 以降で対応予定)。
wasm_call_i
wasm 関数を呼び出し (i32 戻り)
wasm エクスポート関数を検索して呼び出します。全引数は i32 として
渡されます。戻り値は i32 として int 変数に格納されます。
HSP からは固定アリティラッパの wasm_call0 ~ wasm_call8 (iron_wasm.hsp)
を使うほうが簡潔に書けます。
wasm_call_i64
wasm 関数を呼び出し (i64 戻り)
i64 戻り値を double 変数にビットパターンで格納します (HSP が
int64 型を持たないための折衷策)。HSP 側で取り出すときは
下位 32bit だけ使うか、別途 bitcast してください。