Enum xhci::ring::trb::event::CompletionCode[][src]

pub enum CompletionCode {
    Invalid,
    Success,
    DataBufferError,
    BabbleDetectedError,
    UsbTransactionError,
    TrbError,
    StallError,
    ResourceError,
    BandwidthError,
    NoSlotsAvailableError,
    InvalidStreamTypeError,
    SlotNotEnabledError,
    EndpointNotEnabledError,
    ShortPacket,
    RingUnderrun,
    RingOverrun,
    VfEventRingFullError,
    ParameterError,
    BandwidthOverrunError,
    ContextStateError,
    NoPingResponseError,
    EventRingFullError,
    IncompatibleDeviceError,
    MissedServiceError,
    CommandRingStopped,
    CommandAborted,
    Stopped,
    StoppedLengthInvalid,
    StoppedShortPacket,
    MaxExitLatencyTooLargeError,
    IsochBufferOverrun,
    EventLostError,
    UndefinedError,
    InvalidStreamIdError,
    SecondaryBandwidthError,
    SplitTransactionError,
}

The TRB Completion Codes.

The description of each error is quoted from eXtensible Host Controller Interface for Universal Serial Bus (xHCI) Requirements Specification May 2019 Revision 1.2, Section 6.4.5, Table 6-90. Refer to this specification for more detail.

Variants

Invalid

Indicates that the Completion Code field has not been updated by the TRB producer.

Success

Indicates successful completion of the TRB operation.

DataBufferError

Indicates that the Host Controller is unable to keep up the reception of incoming data (overrun) or is unable to supply data fast enough during transmission (underrun).

BabbleDetectedError

Asserted when “babbling” is detected during the transaction generated by this TRB.

UsbTransactionError

Asserted in the case where the host did not receive a valid response from the device.

TrbError

Asserted when a TRB parameter error condition is detected in a TRB.

StallError

Asserted when a Stall condition is detected for a TRB.

ResourceError

Asserted by a Configure Endpoint Command or an Address Device Command if there are not adequate xHC resources available to successfully complete the command.

BandwidthError

Asserted by a Configure Endpoint Command if periodic endpoints are declared and the xHC is not able to allocate the required Bandwidth.

NoSlotsAvailableError

Asserted if a adding one more device would result in the host controller to exceed the maximum Number of Device Slots for this implementation.

InvalidStreamTypeError

Asserted if an invalid Stream Context Type value is detected.

SlotNotEnabledError

Asserted if a command is issued to a Device Slot that is in the Disabled state.

EndpointNotEnabledError

Asserted if a doorbell is rung for an endpoint that is in the Disabled state.

ShortPacket

Asserted if the number of bytes received was less than the TD Transfer Size.

RingUnderrun

Asserted in a Transfer Event TRB if the Transfer Ring is empty when an enabled Isoch endpoint is scheduled to transmit data.

RingOverrun

Asserted in a Transfer Event TRB if the Transfer Ring is empty when an enabled Isoch endpoint is scheduled to receive data.

VfEventRingFullError

Asserted by a Force Event command if the target VF’s Event Ring is full.

ParameterError

Asserted by a command if a Context parameter is invalid.

BandwidthOverrunError

Asserted during an Isoch transfer if the TD exceeds the bandwidth allocated to the endpoint.

ContextStateError

Asserted if a command is issued to transition from an illegal context state.

NoPingResponseError

Asserted if the xHC was unable to complete a periodic data transfer associated within the ESIT, because it did not receive a PING_RESPONSE in time.

EventRingFullError

Asserted if the Event Ring is full, the xHC is unable to post an Event to the ring.

IncompatibleDeviceError

Asserted if the xHC detects a problem with a device that does not allow it to be successfully accessed.

MissedServiceError

Asserted if the xHC was unable to service a Isochronous endpoint within the Interval time.

CommandRingStopped

Asserted in a Command Completion Event due to a Command Stop operation.

CommandAborted

Asserted in a Command Completion Event of an aborted command if the command was terminated by a Command Abort (CA) operation.

Stopped

Asserted in a Transfer Event if the transfer was terminated by a Stop Endpoint Command.

StoppedLengthInvalid

Asserted in a Transfer Event if the transfer was terminated by a Stop Endpoint Command and the Transfer Event TRB Transfer Length field is invalid.

StoppedShortPacket

Asserted in a Transfer Event if the transfer was terminated by a Stop Endpoint Command, and the transfer was stopped after Short Packet conditions were met, but before the end of the TD was reached.

MaxExitLatencyTooLargeError

Asserted by the Evaluate Context Command if the proposed Max Exit Latency would not allow the periodic endpoints of the Device Slot to be scheduled.

IsochBufferOverrun

Asserted if the data buffer defined by an Isoch TD on an IN endpoint is less than the Max ESIT Payload in size and the device attempts to send more data than it can hold.

EventLostError

Asserted if the xHC internal event overrun condition.

UndefinedError

May be reported by an event when other error codes do not apply.

InvalidStreamIdError

Asserted if an invalid Stream ID is received.

SecondaryBandwidthError

Asserted by a Configure Endpoint Command if periodic endpoints are declared and the xHC is not able to allocate the required Bandwidth due to a Secondary Bandwidth Domain.

SplitTransactionError

Asserted if an error is detected on a USB2 protocol endpoint for a split transaction.

Trait Implementations

impl Clone for CompletionCode[src]

impl Copy for CompletionCode[src]

impl Debug for CompletionCode[src]

impl Eq for CompletionCode[src]

impl FromPrimitive for CompletionCode[src]

impl Hash for CompletionCode[src]

impl Ord for CompletionCode[src]

impl PartialEq<CompletionCode> for CompletionCode[src]

impl PartialOrd<CompletionCode> for CompletionCode[src]

impl StructuralEq for CompletionCode[src]

impl StructuralPartialEq for CompletionCode[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.