File WAVMWasmModule.h
-
namespace wasm
SYSCALL NUMBERING
Have a look in the sysroot at include/bits/syscall.h to determine the system call numbering.
Functions
-
class WAVMModuleCache
Public Functions
-
std::pair<wasm::WAVMWasmModule&, faabric::util::SharedLock> getCachedModule(faabric::Message &msg)
-
std::string registerResetSnapshot(wasm::WasmModule &module, faabric::Message &msg)
-
void clear()
-
size_t getTotalCachedModuleCount()
Private Functions
-
int getCachedModuleCount(const std::string &key)
Private Members
-
std::shared_mutex mx
-
std::unordered_map<std::string, wasm::WAVMWasmModule> cachedModuleMap
-
std::pair<wasm::WAVMWasmModule&, faabric::util::SharedLock> getCachedModule(faabric::Message &msg)
-
class WAVMWasmModule : public wasm::WasmModule, private Resolver
Public Functions
-
WAVMWasmModule()
-
WAVMWasmModule(int threadPoolSizeIn)
-
WAVMWasmModule(const WAVMWasmModule &other)
-
WAVMWasmModule &operator=(const WAVMWasmModule &other)
-
~WAVMWasmModule()
-
virtual void doBindToFunction(faabric::Message &msg, bool cache) override
-
void bindToFunctionNoZygote(faabric::Message &msg)
-
virtual void reset(faabric::Message &msg, const std::string &snapshotKey) override
-
virtual void doThrowException(std::exception &e) override
-
virtual uint32_t mmapFile(uint32_t fd, size_t length) override
-
virtual uint8_t *wasmPointerToNative(uint32_t wasmPtr) override
-
virtual size_t getMemorySizeBytes() override
-
virtual size_t getMaxMemoryPages() override
-
virtual uint8_t *getMemoryBase() override
-
virtual void writeWasmEnvToMemory(uint32_t envPointers, uint32_t envBuffer) override
-
virtual void printDebugInfo() override
-
void executeWasmFunction(WAVM::Runtime::Function *func, WAVM::IR::FunctionType funcType, const std::vector<WAVM::IR::UntaggedValue> &arguments, WAVM::IR::UntaggedValue &result)
-
void executeWasmFunction(WAVM::Runtime::Function *func, const std::vector<WAVM::IR::UntaggedValue> &arguments, WAVM::IR::UntaggedValue &result)
-
void executeWasmFunction(WAVM::Runtime::Context *ctx, WAVM::Runtime::Function *func, const std::vector<WAVM::IR::UntaggedValue> &arguments, WAVM::IR::UntaggedValue &result)
-
virtual void writeArgvToMemory(uint32_t wasmArgvPointers, uint32_t wasmArgvBuffer) override
-
WAVM::Runtime::Function *getFunctionFromPtr(int funcPtr) const
-
bool resolve(const std::string &moduleName, const std::string &name, WAVM::IR::ExternType type, WAVM::Runtime::Object *&resolved) override
-
int32_t getGlobalI32(const std::string &globalName, WAVM::Runtime::Context *context)
-
std::map<std::string, std::string> buildDisassemblyMap()
-
int dynamicLoadModule(const std::string &path, WAVM::Runtime::Context *context)
-
uint32_t getDynamicModuleFunction(int handle, const std::string &funcName)
-
int getDynamicModuleCount()
-
uint32_t addFunctionToTable(WAVM::Runtime::Object *exportedFunc) const
-
int getNextMemoryBase()
-
int getNextStackPointer()
-
int getNextTableBase()
-
int getFunctionOffsetFromGOT(const std::string &funcName)
-
int getDataOffsetFromGOT(const std::string &name)
-
virtual int32_t executeFunction(faabric::Message &msg) override
-
virtual int32_t executeOMPThread(int threadPoolIdx, uint32_t stackTop, faabric::Message &msg) override
-
virtual int32_t executePthread(int threadPoolIdx, uint32_t stackTop, faabric::Message &msg) override
Public Members
Public Static Functions
-
static void clearCaches()
Private Functions
-
LoadedDynamicModule &getLastLoadedDynamicModule()
-
virtual bool doGrowMemory(uint32_t pageChange) override
-
void doBindToFunctionInternal(faabric::Message &msg, bool executeZygote, bool useCache)
-
void writeStringArrayToMemory(const std::vector<std::string> &strings, uint32_t strPoitners, uint32_t strBuffer) const
-
void clone(const WAVMWasmModule &other, const std::string &snapshotKey)
-
void executeZygoteFunction()
-
void doWAVMGarbageCollection()
Private Members
-
std::shared_mutex resetMx
-
std::unordered_map<std::string, int> dynamicPathToHandleMap
-
std::unordered_map<int, LoadedDynamicModule> dynamicModuleMap
-
int lastLoadedDynamicModuleHandle = 0
-
std::unordered_map<std::string, std::pair<int, bool>> globalOffsetMemoryMap
-
std::unordered_map<std::string, int> missingGlobalOffsetEntries
Private Static Functions
-
WAVMWasmModule()
-
class WAVMModuleCache