Struct TransferRingTrbHandler

Source
pub struct TransferRingTrbHandler {
    mem: GuestMemory,
    port: Arc<UsbPort>,
    interrupter: Arc<Mutex<Interrupter>>,
    slot_id: u8,
    endpoint_id: u8,
    transfer_manager: XhciTransferManager,
    stream_id: Option<u16>,
}
Expand description

TransferRingTrbHandler handles trbs on transfer ring.

Fields§

§mem: GuestMemory§port: Arc<UsbPort>§interrupter: Arc<Mutex<Interrupter>>§slot_id: u8§endpoint_id: u8§transfer_manager: XhciTransferManager§stream_id: Option<u16>

Trait Implementations§

Source§

impl TransferDescriptorHandler for TransferRingTrbHandler

Source§

fn handle_transfer_descriptor( &self, descriptor: TransferDescriptor, trigger_event: Event, ) -> Result<()>

Process descriptor asynchronously, signal trigger_event when ready to proceed.
Source§

fn cancel_transfers(&self, callback: RingBufferStopCallback)

Cancel transfers. This is used to stop the ring activity as soon as possible when we process a Stop Endpoint command. xHCI spec 4.6.9 states we need to stop the USB activity for the pipe before sending the completion event. Use the callback to ensure that all the in-flight transfers are gone before sending the event, if the backend cannot immediately cancel them.

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

§

fn vzip(self) -> V