struct WlBackend {
    ex: Executor,
    wayland_paths: Option<BTreeMap<String, PathBuf>>,
    resource_bridge: Option<Tube>,
    use_transition_flags: bool,
    use_send_vfd_v2: bool,
    use_shmem: bool,
    features: u64,
    acked_features: u64,
    wlstate: Option<Rc<RefCell<WlState>>>,
    workers: [Option<WorkerState<Rc<RefCell<Queue>>, ()>>; 2],
    backend_req_conn: VhostBackendReqConnectionState,
}

Fields§

§ex: Executor§wayland_paths: Option<BTreeMap<String, PathBuf>>§resource_bridge: Option<Tube>§use_transition_flags: bool§use_send_vfd_v2: bool§use_shmem: bool§features: u64§acked_features: u64§wlstate: Option<Rc<RefCell<WlState>>>§workers: [Option<WorkerState<Rc<RefCell<Queue>>, ()>>; 2]§backend_req_conn: VhostBackendReqConnectionState

Implementations§

source§

impl WlBackend

source

fn new( ex: &Executor, wayland_paths: BTreeMap<String, PathBuf>, resource_bridge: Option<Tube> ) -> WlBackend

Trait Implementations§

source§

impl VhostUserDevice for WlBackend

source§

fn max_queue_num(&self) -> usize

The maximum number of queues that this backend can manage.
source§

fn features(&self) -> u64

The set of feature bits that this backend supports.
source§

fn ack_features(&mut self, value: u64) -> Result<()>

Acknowledges that this set of features should be enabled. Read more
source§

fn protocol_features(&self) -> VhostUserProtocolFeatures

The set of protocol feature bits that this backend supports.
source§

fn read_config(&self, _offset: u64, _dst: &mut [u8])

Reads this device configuration space at offset.
source§

fn start_queue( &mut self, idx: usize, queue: Queue, _mem: GuestMemory ) -> Result<()>

Indicates that the backend should start processing requests for virtio queue number idx. This method must not block the current thread so device backends should either spawn an async task or another thread to handle messages from the Queue.
source§

fn stop_queue(&mut self, idx: usize) -> Result<Queue>

Indicates that the backend should stop processing requests for virtio queue number idx. This method should return the queue passed to start_queue for the corresponding idx. This method will only be called for queues that were previously started by start_queue.
source§

fn reset(&mut self)

Resets the vhost-user backend.
source§

fn get_shared_memory_region(&self) -> Option<SharedMemoryRegion>

Returns the device’s shared memory region if present.
source§

fn set_backend_req_connection(&mut self, conn: Arc<VhostBackendReqConnection>)

Accepts VhostBackendReqConnection to conduct Vhost backend to frontend message handling. Read more
source§

fn enter_suspended_state(&mut self) -> Result<()>

Enter the “suspended device state” described in the vhost-user spec. See the spec for requirements. Read more
source§

fn snapshot(&mut self) -> Result<Value>

Snapshot device and return serialized state.
source§

fn restore(&mut self, _data: Value) -> Result<()>

Restore device state from a snapshot.
source§

fn write_config(&self, _offset: u64, _data: &[u8])

writes data to this device’s configuration space at offset.

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
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V