pub struct UsbEndpoint {
fail_handle: Arc<dyn FailHandle>,
job_queue: Arc<AsyncJobQueue>,
endpoint_number: u8,
direction: EndpointDirection,
ty: EndpointType,
}
Expand description
Isochronous, Bulk or Interrupt endpoint.
Fields§
§fail_handle: Arc<dyn FailHandle>
§job_queue: Arc<AsyncJobQueue>
§endpoint_number: u8
§direction: EndpointDirection
§ty: EndpointType
Implementations§
source§impl UsbEndpoint
impl UsbEndpoint
sourcepub fn new(
fail_handle: Arc<dyn FailHandle>,
job_queue: Arc<AsyncJobQueue>,
endpoint_number: u8,
direction: EndpointDirection,
ty: EndpointType
) -> UsbEndpoint
pub fn new( fail_handle: Arc<dyn FailHandle>, job_queue: Arc<AsyncJobQueue>, endpoint_number: u8, direction: EndpointDirection, ty: EndpointType ) -> UsbEndpoint
Create new endpoint. This function will panic if endpoint type is control.
fn ep_addr(&self) -> u8
sourcepub fn match_ep(&self, endpoint_number: u8, dir: TransferDirection) -> bool
pub fn match_ep(&self, endpoint_number: u8, dir: TransferDirection) -> bool
Returns true is this endpoint matches number and direction.
sourcepub fn handle_transfer(
&self,
device: &mut BackendDeviceType,
transfer: XhciTransfer
) -> Result<()>
pub fn handle_transfer( &self, device: &mut BackendDeviceType, transfer: XhciTransfer ) -> Result<()>
Handle a xhci transfer.
fn get_transfer_buffer( &self, buffer: &ScatterGatherBuffer, device: &mut BackendDeviceType ) -> Result<TransferBuffer>
fn handle_bulk_transfer( &self, device: &mut BackendDeviceType, xhci_transfer: XhciTransfer, buffer: ScatterGatherBuffer ) -> Result<()>
fn handle_interrupt_transfer( &self, device: &mut BackendDeviceType, xhci_transfer: XhciTransfer, buffer: ScatterGatherBuffer ) -> Result<()>
fn do_handle_transfer( &self, device: &mut BackendDeviceType, xhci_transfer: XhciTransfer, usb_transfer: BackendTransferType, buffer: ScatterGatherBuffer ) -> Result<()>
Auto Trait Implementations§
impl !RefUnwindSafe for UsbEndpoint
impl Send for UsbEndpoint
impl Sync for UsbEndpoint
impl Unpin for UsbEndpoint
impl !UnwindSafe for UsbEndpoint
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn 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>
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)
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)
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.