Skip to main content

RvfMount

Struct RvfMount 

Source
pub struct RvfMount { /* private fields */ }
Expand description

RVF mount operation handler.

Implements the rvf_mount syscall per ADR-087.

Implementations§

Source§

impl RvfMount

Source

pub fn new(config: MountConfig) -> Self

Creates a new RVF mount handler.

Source

pub fn set_public_key(&mut self, public_key: &[u8])

Sets the signature verification public key.

Source

pub fn mount( &mut self, manifest_bytes: &[u8], signature: &[u8], _package_bytes: &[u8], ) -> Result<MountResult, KernelError>

Mounts an RVF package.

§Steps
  1. Verify package signature
  2. Parse manifest
  3. Create regions per memory schema
  4. Mount WASM components
  5. Distribute capabilities per manifest
  6. Connect queues per wiring
  7. Spawn initial tasks per WIT entry points
§Errors
  • InvalidSignature if signature verification fails
  • InvalidManifest if manifest parsing fails
  • OutOfMemory if region creation fails
  • LimitExceeded if max components/regions/queues exceeded
Source

pub fn unmount(&mut self, _handle: RvfMountHandle) -> Result<(), KernelError>

Unmounts an RVF package.

§Steps
  1. Stop all tasks
  2. Disconnect queues
  3. Revoke capabilities
  4. Destroy regions
  5. Free mount handle

Trait Implementations§

Source§

impl Default for RvfMount

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.