File WAMRWasmModule.h

Defines

ERROR_BUFFER_SIZE
STACK_SIZE_KB
HEAP_SIZE_KB
WAMR_INTERNAL_EXCEPTION_PREFIX
WAMR_EXIT_PREFIX
namespace wasm

SYSCALL NUMBERING

Have a look in the sysroot at include/bits/syscall.h to determine the system call numbering.

Enums

enum WAMRExceptionTypes

Values:

enumerator NoException
enumerator DefaultException
enumerator FunctionMigratedException
enumerator QueueTimeoutException
class WAMRWasmModule : public wasm::WasmModule, public WAMRModuleMixin<WAMRWasmModule>

Public Functions

WAMRWasmModule()
explicit WAMRWasmModule(int threadPoolSizeIn)
~WAMRWasmModule()
virtual void reset(faabric::Message &msg, const std::string &snapshotKey) override
virtual void doBindToFunction(faabric::Message &msg, bool cache) override
virtual int32_t executeFunction(faabric::Message &msg) override
virtual void doThrowException(std::exception &e) override
void writeStringToWasmMemory(const std::string &strHost, char *strWasm)
void writeWasmEnvToWamrMemory(uint32_t *envOffsetsWasm, char *envBuffWasm)
void validateWasmOffset(uint32_t wasmOffset, size_t size)
virtual uint8_t *wasmPointerToNative(uint32_t wasmPtr) override
virtual uint32_t mmapFile(uint32_t fp, size_t length) override
virtual size_t getMemorySizeBytes() override
virtual uint8_t *getMemoryBase() override
virtual size_t getMaxMemoryPages() override
WASMModuleInstanceCommon *getModuleInstance()
std::vector<std::string> getArgv()

Public Static Functions

static void initialiseWAMRGlobally()

Private Functions

int executeWasmFunction(const std::string &funcName)
int executeWasmFunctionFromPointer(faabric::Message &msg)
bool executeCatchException(WASMFunctionInstanceCommon *func, int wasmFuncPtr, int argc, std::vector<uint32_t> &argv)
void bindInternal(faabric::Message &msg)
virtual bool doGrowMemory(uint32_t pageChange) override

Private Members

char errorBuffer[ERROR_BUFFER_SIZE]
std::vector<uint8_t> wasmBytes
WASMModuleCommon *wasmModule
WASMModuleInstanceCommon *moduleInstance
jmp_buf wamrExceptionJmpBuf