SynicPortMap

Struct SynicPortMap 

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

Registry of message and event ports, keyed by connection ID.

This is the shared state that backs SynicPorts. Store an instance on the partition inner struct so that both SynicPortAccess consumers (VMBus, etc.) and hypercall handlers share the same port map.

Hypercall handlers should call SynicPortMap::handle_post_message / SynicPortMap::handle_signal_event to dispatch guest hypercalls.

Implementations§

Source§

impl SynicPortMap

Source

pub fn handle_post_message( &self, vtl: Vtl, connection_id: u32, secure: bool, message: &[u8], ) -> HvResult<()>

Dispatches a guest HvPostMessage hypercall to the registered port.

Source

pub fn handle_signal_event( &self, vtl: Vtl, connection_id: u32, flag_number: u16, ) -> HvResult<()>

Dispatches a guest HvSignalEvent hypercall to the registered port.

Trait Implementations§

Source§

impl Debug for SynicPortMap

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SynicPortMap

Source§

fn default() -> SynicPortMap

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

impl Inspect for SynicPortMap

Source§

fn inspect(&self, req: Request<'_>)

Inspects the object.

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more