Struct wasmer_wasix::WasiEnv
source · pub struct WasiEnv {Show 13 fields
pub control_plane: WasiControlPlane,
pub process: WasiProcess,
pub thread: WasiThread,
pub vfork: Option<WasiVFork>,
pub stack_end: u64,
pub stack_start: u64,
pub poll_seed: u64,
pub bin_factory: BinFactory,
pub inner: Option<WasiInstanceHandles>,
pub owned_handles: Vec<WasiThreadHandle>,
pub runtime: Arc<dyn WasiRuntime + Send + Sync + 'static>,
pub module_cache: Arc<ModuleCache>,
pub capabilities: Capabilities,
/* private fields */
}
Expand description
The environment provided to the WASI imports.
Fields§
§control_plane: WasiControlPlane
§process: WasiProcess
Represents the process this environment is attached to
thread: WasiThread
Represents the thread this environment is attached to
vfork: Option<WasiVFork>
Represents a fork of the process that is currently in play
stack_end: u64
End of the stack memory that is allocated for this thread
stack_start: u64
Start of the stack memory that is allocated for this thread
poll_seed: u64
Seed used to rotate around the events returned by poll_oneoff
bin_factory: BinFactory
Binary factory attached to this environment
inner: Option<WasiInstanceHandles>
Inner functions and references that are loaded before the environment starts
owned_handles: Vec<WasiThreadHandle>
List of the handles that are owned by this context (this can be used to ensure that threads own themselves or others)
runtime: Arc<dyn WasiRuntime + Send + Sync + 'static>
Implementation of the WASI runtime.
module_cache: Arc<ModuleCache>
§capabilities: Capabilities
Implementations§
source§impl WasiEnv
impl WasiEnv
sourcepub fn builder(program_name: impl Into<String>) -> WasiEnvBuilder
pub fn builder(program_name: impl Into<String>) -> WasiEnvBuilder
Construct a new WasiEnvBuilder
that allows customizing an environment.
sourcepub fn fork(&self) -> Result<(Self, WasiThreadHandle), ControlPlaneError>
pub fn fork(&self) -> Result<(Self, WasiThreadHandle), ControlPlaneError>
Forking the WasiState is used when either fork or vfork is called
pub fn pid(&self) -> WasiProcessId
pub fn tid(&self) -> WasiThreadId
sourcepub fn runtime(&self) -> &dyn WasiRuntime
pub fn runtime(&self) -> &dyn WasiRuntime
Returns a copy of the current runtime implementation for this environment
sourcepub fn tasks(&self) -> &Arc<dyn VirtualTaskManager>
pub fn tasks(&self) -> &Arc<dyn VirtualTaskManager>
Returns a copy of the current tasks implementation for this environment
pub fn fs_root(&self) -> &WasiFsRoot
sourcepub fn set_runtime<R>(&mut self, runtime: R)where
R: WasiRuntime + Send + Sync + 'static,
pub fn set_runtime<R>(&mut self, runtime: R)where R: WasiRuntime + Send + Sync + 'static,
Overrides the runtime implementation for this environment
sourcepub fn active_threads(&self) -> u32
pub fn active_threads(&self) -> u32
Returns the number of active threads
sourcepub fn process_signals_and_exit(
ctx: &mut FunctionEnvMut<'_, Self>
) -> Result<Result<bool, Errno>, WasiError>
pub fn process_signals_and_exit( ctx: &mut FunctionEnvMut<'_, Self> ) -> Result<Result<bool, Errno>, WasiError>
Porcesses any signals that are batched up or any forced exit codes
sourcepub fn process_signals(
ctx: &mut FunctionEnvMut<'_, Self>
) -> Result<Result<bool, Errno>, WasiError>
pub fn process_signals( ctx: &mut FunctionEnvMut<'_, Self> ) -> Result<Result<bool, Errno>, WasiError>
Porcesses any signals that are batched up
pub fn process_signals_internal( ctx: &mut FunctionEnvMut<'_, Self>, signals: Vec<Signal> ) -> Result<bool, WasiError>
sourcepub fn should_exit(&self) -> Option<ExitCode>
pub fn should_exit(&self) -> Option<ExitCode>
Returns an exit code if the thread or process has been forced to exit
sourcepub fn net(&self) -> &DynVirtualNetworking
pub fn net(&self) -> &DynVirtualNetworking
Accesses the virtual networking implementation
sourcepub fn inner(&self) -> &WasiInstanceHandles
pub fn inner(&self) -> &WasiInstanceHandles
Providers safe access to the initialized part of WasiEnv (it must be initialized before it can be used)
sourcepub fn inner_mut(&mut self) -> &mut WasiInstanceHandles
pub fn inner_mut(&mut self) -> &mut WasiInstanceHandles
Providers safe access to the initialized part of WasiEnv (it must be initialized before it can be used)
sourcepub fn memory_view<'a>(&'a self, store: &'a impl AsStoreRef) -> MemoryView<'a>
pub fn memory_view<'a>(&'a self, store: &'a impl AsStoreRef) -> MemoryView<'a>
Providers safe access to the memory (it must be initialized before it can be used)
sourcepub fn memory(&self) -> &Memory
pub fn memory(&self) -> &Memory
Providers safe access to the memory (it must be initialized before it can be used)
sourcepub fn memory_clone(&self) -> Memory
pub fn memory_clone(&self) -> Memory
Copy the lazy reference so that when it’s initialized during the export phase, all the other references get a copy of it
sourcepub fn stdout(
&self
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn stdout( &self ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Get the VirtualFile
object at stdout
sourcepub fn stderr(
&self
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn stderr( &self ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Get the VirtualFile
object at stderr
sourcepub fn stdin(
&self
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn stdin( &self ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Get the VirtualFile
object at stdin
sourcepub fn std_dev_get(
&self,
fd: WasiFd
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn std_dev_get( &self, fd: WasiFd ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Internal helper function to get a standard device handle.
Expects one of __WASI_STDIN_FILENO
, __WASI_STDOUT_FILENO
, __WASI_STDERR_FILENO
.
pub fn uses<I>(&self, uses: I) -> Result<(), WasiStateCreationError>where I: IntoIterator<Item = String>,
pub fn map_commands( &self, map_commands: HashMap<String, PathBuf> ) -> Result<(), WasiStateCreationError>
sourcepub fn blocking_cleanup(&self, exit_code: Option<ExitCode>)
pub fn blocking_cleanup(&self, exit_code: Option<ExitCode>)
Cleans up all the open files (if this is the main thread)