pub struct XhciTransferManager {
transfers: Arc<Mutex<VecDeque<Weak<Mutex<XhciTransferState>>>>>,
device_slot: Weak<DeviceSlot>,
stop_callback: Arc<Mutex<Vec<RingBufferStopCallback>>>,
}Expand description
Xhci Transfer manager holds reference to all ongoing transfers. Can cancel them all if needed.
Fields§
§transfers: Arc<Mutex<VecDeque<Weak<Mutex<XhciTransferState>>>>>§device_slot: Weak<DeviceSlot>§stop_callback: Arc<Mutex<Vec<RingBufferStopCallback>>>Implementations§
Source§impl XhciTransferManager
impl XhciTransferManager
Sourcepub fn new(device_slot: Weak<DeviceSlot>) -> XhciTransferManager
pub fn new(device_slot: Weak<DeviceSlot>) -> XhciTransferManager
Create a new manager.
Sourcepub fn create_transfer(
&self,
mem: GuestMemory,
port: Arc<UsbPort>,
interrupter: Arc<Mutex<Interrupter>>,
slot_id: u8,
endpoint_id: u8,
transfer_descriptor: TransferDescriptor,
trigger_event: Event,
stream_id: Option<u16>,
) -> XhciTransfer
pub fn create_transfer( &self, mem: GuestMemory, port: Arc<UsbPort>, interrupter: Arc<Mutex<Interrupter>>, slot_id: u8, endpoint_id: u8, transfer_descriptor: TransferDescriptor, trigger_event: Event, stream_id: Option<u16>, ) -> XhciTransfer
Build a new XhciTransfer. Endpoint id is the id in xHCI device slot.
Sourcepub fn cancel_all(&self, callback: RingBufferStopCallback)
pub fn cancel_all(&self, callback: RingBufferStopCallback)
Cancel all current transfers and execute the callback once completed.
fn remove_transfer(&self, t: &Arc<Mutex<XhciTransferState>>)
Trait Implementations§
Source§impl Clone for XhciTransferManager
impl Clone for XhciTransferManager
Source§fn clone(&self) -> XhciTransferManager
fn clone(&self) -> XhciTransferManager
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for XhciTransferManager
impl !RefUnwindSafe for XhciTransferManager
impl Send for XhciTransferManager
impl Sync for XhciTransferManager
impl Unpin for XhciTransferManager
impl !UnwindSafe for XhciTransferManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more