5#ifndef WASMTIME_WASI_HH
6#define WASMTIME_WASI_HH
13#include <wasmtime/helpers.hh>
15#ifdef WASMTIME_FEATURE_WASI
31 void argv(
const std::vector<std::string> &args) {
32 std::vector<const char *> ptrs;
33 ptrs.reserve(args.size());
34 for (
const auto &arg : args) {
35 ptrs.push_back(arg.c_str());
47 void env(
const std::vector<std::pair<std::string, std::string>> &env) {
48 std::vector<const char *> names;
49 std::vector<const char *> values;
50 for (
const auto &[name, value] : env) {
51 names.push_back(name.c_str());
52 values.push_back(value.c_str());
64 [[nodiscard]]
bool stdin_file(
const std::string &path) {
74 [[nodiscard]]
bool stdout_file(
const std::string &path) {
84 [[nodiscard]]
bool stderr_file(
const std::string &path) {
93 [[nodiscard]]
bool preopen_dir(
const std::string &path,
94 const std::string &guest_path,
95 size_t dir_perms,
size_t file_perms) {
97 dir_perms, file_perms);
Configuration for an instance of WASI.
Definition: wasi.hh:24
Build-time defines for how the C API was built.
void wasi_config_inherit_env(wasi_config_t *config)
Indicates that the entire environment of the calling process should be inherited by this WASI configu...
void wasi_config_inherit_argv(wasi_config_t *config)
Indicates that the argv list should be inherited from this process's argv list.
void wasi_config_inherit_stderr(wasi_config_t *config)
Configures this process's own stderr stream to be used as stderr for this WASI configuration.
bool wasi_config_set_stdout_file(wasi_config_t *config, const char *path)
Configures standard output to be written to the specified file.
bool wasi_config_set_env(wasi_config_t *config, size_t envc, const char *names[], const char *values[])
Sets the list of environment variables available to the WASI instance.
bool wasi_config_set_argv(wasi_config_t *config, size_t argc, const char *argv[])
Sets the argv list for this configuration object.
void wasi_config_inherit_stdout(wasi_config_t *config)
Configures this process's own stdout stream to be used as stdout for this WASI configuration.
bool wasi_config_set_stderr_file(wasi_config_t *config, const char *path)
Configures standard output to be written to the specified file.
void wasi_config_inherit_stdin(wasi_config_t *config)
Configures this process's own stdin stream to be used as stdin for this WASI configuration.
bool wasi_config_set_stdin_file(wasi_config_t *config, const char *path)
Configures standard input to be taken from the specified file.
wasi_config_t * wasi_config_new()
Creates a new empty configuration object.
bool wasi_config_preopen_dir(wasi_config_t *config, const char *host_path, const char *guest_path, wasi_dir_perms dir_perms, wasi_file_perms file_perms)
Configures a "preopened directory" to be available to WASI APIs.