File wamr/filesystem.cpp

namespace wasm

SYSCALL NUMBERING

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

Functions

uint32_t getFaasmFilesystemApi(NativeSymbol **nativeSymbols)
uint32_t getFaasmWasiFilesystemApi(NativeSymbol **nativeSymbols)
uint32_t doWasiDup(uint32_t fd)
static uint32_t __wasi_fd_dup_wrapper(wasm_exec_env_t exec_env, uint32_t fd, uint32_t *resFd)
static uint32_t dup_wrapper(wasm_exec_env_t exec_env, uint32_t fd)
static uint32_t getpwnam_wrapper(wasm_exec_env_t exec_env, uint32_t a)
static int32_t sendfile_wrapper(wasm_exec_env_t exec_env, int32_t out_fd, int32_t in_fd, int32_t offset, int32_t count)
static int32_t tempnam_wrapper(wasm_exec_env_t exec_env, int32_t a, int32_t b)
static uint32_t wasi_fd_allocate(wasm_exec_env_t exec_env, __wasi_fd_t fd, __wasi_filesize_t offset, __wasi_filesize_t len)
static int32_t wasi_fd_close(wasm_exec_env_t exec_env, int32_t fd)
static int32_t wasi_fd_fdstat_get(wasm_exec_env_t exec_env, int32_t fd, __wasi_fdstat_t *statWasm)
static int32_t wasi_fd_fdstat_set_flags(wasm_exec_env_t exec_env, int32_t a, int32_t b)
static int32_t wasi_fd_fdstat_set_rights(wasm_exec_env_t exec_env, int32_t a, int64_t b, int64_t c)
static int32_t doFileStat(uint32_t fd, const std::string &relativePath, __wasi_filestat_t *statWasm)
static int32_t wasi_fd_filestat_get(wasm_exec_env_t exec_env, int32_t fd, __wasi_filestat_t *statWasm)
static int32_t wasi_fd_filestat_set_size(wasm_exec_env_t execEnv, int32_t a, int64_t b)
static uint32_t wasi_fd_pread(wasm_exec_env_t exec_env, __wasi_fd_t fd, iovec_app_t *iovecWasm, uint32_t iovecLen, __wasi_filesize_t offset, uint32_t *nReadWasm)
static int32_t wasi_fd_prestat_dir_name(wasm_exec_env_t exec_env, int32_t fd, char *path, int32_t *pathLen)
static int32_t wasi_fd_prestat_get(wasm_exec_env_t exec_env, int32_t fd, wasi_prestat_app_t *prestatWasm)
static uint32_t wasi_fd_pwrite(wasm_exec_env_t exec_env, __wasi_fd_t fd, const iovec_app_t *iovecWasm, uint32_t iovecLen, __wasi_filesize_t offset, uint32_t *nWrittenWasm)
static int32_t wasi_fd_read(wasm_exec_env_t exec_env, int32_t fd, iovec_app_t *ioVecBuffWasm, int32_t ioVecCountWasm, int32_t *bytesRead)
static int32_t wasi_fd_readdir(wasm_exec_env_t exec_env, int32_t a, int32_t *b, char *c, int64_t d, int32_t e)
static int32_t wasi_fd_seek(wasm_exec_env_t exec_env, int32_t fd, int64_t offset, int32_t whence, __wasi_filesize_t *newOffset)
static uint32_t wasi_fd_sync(wasm_exec_env_t exec_env, __wasi_fd_t fd)
static uint32_t wasi_fd_tell(wasm_exec_env_t exec_env, uint32_t fd, uint32_t *resOffset)
static int32_t wasi_fd_write(wasm_exec_env_t exec_env, int32_t fd, iovec_app_t *ioVecBuffWasm, int32_t ioVecCountWasm, int32_t *bytesWritten)
static int32_t wasi_path_create_directory(wasm_exec_env_t exec_env, int32_t a, int32_t *b, char *c)
static int32_t wasi_path_filestat_get(wasm_exec_env_t exec_env, int32_t fd, int32_t lookupFlags, char *path, int32_t pathLen, __wasi_filestat_t *statWasm)
static uint32_t wasi_path_filestat_set_times(wasm_exec_env_t exec_env, __wasi_fd_t fd, __wasi_lookupflags_t flags, const char *path, uint32_t pathLen, __wasi_timestamp_t stAtim, __wasi_timestamp_t stMtim, __wasi_fstflags_t fstflags)
static int32_t wasi_path_link(wasm_exec_env_t exec_env, int32_t a, int32_t b, int32_t *c, char *d, int32_t e, int32_t *f, char *g)
static int32_t wasi_path_open(wasm_exec_env_t exec_env, int32_t fdNative, int32_t lookupFlags, char *path, int32_t pathLen, int32_t openFlags, int64_t rightsBase, int64_t rightsInheriting, int32_t fdFlags, int32_t *fdWasm)
static int32_t wasi_path_readlink(wasm_exec_env_t exec_env, uint32_t fd, char *path, uint32_t pathLen, char *buf, uint32_t bufLen, uint32_t *resBytesUsed)
static int32_t wasi_path_remove_directory(wasm_exec_env_t exec_env, int32_t a, int32_t *b, char *c)
static int32_t wasi_path_rename(wasm_exec_env_t exec_env, uint32_t oldFd, char *oldPath, uint32_t oldPathLen, uint32_t newFd, char *newPath, uint32_t newPathLen)
static int32_t wasi_path_symlink(wasm_exec_env_t exec_env, const char *oldPath, uint32_t oldPathLen, uint32_t fd, const char *newPath, uint32_t newPathLen)

Variables

static NativeSymbol ns[] = {REG_NATIVE_FUNC(__wasi_fd_dup, "(i*)i"), REG_NATIVE_FUNC(dup, "(i)i"), REG_NATIVE_FUNC(getpwnam, "(i)i"), REG_NATIVE_FUNC(sendfile, "(iiii)i"), REG_NATIVE_FUNC(tempnam, "(ii)i"),}
static NativeSymbol wasiNs[] = {REG_WASI_NATIVE_FUNC(fd_allocate, "(iII)i"), REG_WASI_NATIVE_FUNC(fd_close, "(i)i"), REG_WASI_NATIVE_FUNC(fd_fdstat_get, "(i*)i"), REG_WASI_NATIVE_FUNC(fd_fdstat_set_flags, "(ii)i"), REG_WASI_NATIVE_FUNC(fd_fdstat_set_rights, "(iII)i"), REG_WASI_NATIVE_FUNC(fd_filestat_get, "(i*)i"), REG_WASI_NATIVE_FUNC(fd_filestat_set_size, "(iI)i"), REG_WASI_NATIVE_FUNC(fd_pread, "(i*iI*)i"), REG_WASI_NATIVE_FUNC(fd_prestat_dir_name, "(i*~)i"), REG_WASI_NATIVE_FUNC(fd_prestat_get, "(i*)i"), REG_WASI_NATIVE_FUNC(fd_read, "(i*i*)i"), REG_WASI_NATIVE_FUNC(fd_readdir, "(i*~I*)i"), REG_WASI_NATIVE_FUNC(fd_pwrite, "(i*iI*)i"), REG_WASI_NATIVE_FUNC(fd_seek, "(iIi*)i"), REG_WASI_NATIVE_FUNC(fd_sync, "(i)i"), REG_WASI_NATIVE_FUNC(fd_tell, "(i*)i"), REG_WASI_NATIVE_FUNC(fd_write, "(i*i*)i"), REG_WASI_NATIVE_FUNC(path_create_directory, "(i*~)i"), REG_WASI_NATIVE_FUNC(path_filestat_get, "(ii*~*)i"), REG_WASI_NATIVE_FUNC(path_filestat_set_times, "(ii*~IIi)i"), REG_WASI_NATIVE_FUNC(path_link, "(ii*~i*~)i"), REG_WASI_NATIVE_FUNC(path_open, "(ii*~iIIi*)i"), REG_WASI_NATIVE_FUNC(path_readlink, "(i*~*~*)i"), REG_WASI_NATIVE_FUNC(path_remove_directory, "(i*~)i"), REG_WASI_NATIVE_FUNC(path_rename, "(i*~i*~)i"), REG_WASI_NATIVE_FUNC(path_symlink, "(*~i*~)i"), REG_WASI_NATIVE_FUNC(path_unlink_file, "(i*~)i"),}