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: EndpointTypeImplementations§
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 handle_isochronous_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 Freeze for UsbEndpoint
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.