ReactOS 0.4.17-dev-1281-g065abb3
xhcihw.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _XHCI_TRB
 
struct  _XHCI_ERST_ENTRY
 
struct  _XHCI_SLOT_CONTEXT
 
struct  _XHCI_SLOT_CONTEXT64
 
struct  _XHCI_ENDPOINT_CONTEXT
 
struct  _XHCI_ENDPOINT_CONTEXT64
 
struct  _XHCI_INPUT_CONTROL_CONTEXT
 
struct  _XHCI_INPUT_CONTROL_CONTEXT64
 
struct  _XHCI_STREAM_CONTEXT
 

Macros

#define XHCI_TRB_CYCLE   0x00000001
 
#define XHCI_TRB_TYPE_SHIFT   10
 
#define XHCI_TRB_TYPE_MASK   0x0000FC00
 
#define XHCI_TRB_SLOT_SHIFT   24
 
#define XHCI_TRB_ENDPOINT_SHIFT   16
 
#define XHCI_TRB_ENDPOINT_MASK   0x001F0000
 
#define XHCI_TRB_CODE_SHIFT   24
 
#define XHCI_RUNTIME_INTERRUPTER_BASE   0x20
 
#define XHCI_INTERRUPTER_STRIDE   0x20
 
#define XHCI_IMAN   0x00
 
#define XHCI_IMOD   0x04
 
#define XHCI_ERSTSZ   0x08
 
#define XHCI_ERSTBA   0x10
 
#define XHCI_ERDP   0x18
 
#define XHCI_IMAN_PENDING   0x00000001
 
#define XHCI_IMAN_ENABLE   0x00000002
 
#define XHCI_ERDP_BUSY   0x00000008
 
#define XHCI_CRCR_RING_CYCLE   0x00000001
 
#define XHCI_CRCR_STOP   0x00000002
 
#define XHCI_CRCR_ABORT   0x00000004
 
#define XHCI_CRCR_RUNNING   0x00000008
 
#define XHCI_CRCR_POINTER_MASK   0xFFFFFFFFFFFFFFC0ULL
 
#define XHCI_LINK_TOGGLE_CYCLE   0x00000002
 
#define XHCI_OP_DCBAAP   0x30
 
#define XHCI_OP_CONFIG   0x38
 
#define XHCI_CONFIG_MAX_SLOTS_MASK   0x000000FF
 
#define XHCI_DCBAA_ENTRIES   256
 
#define XHCI_NOTIFICATION_TYPE_SHIFT   4
 
#define XHCI_NOTIFICATION_TYPE_MASK   0x000000F0
 
#define XHCI_PORT_SC   0x00
 
#define XHCI_PORT_PMSC   0x04
 
#define XHCI_PORT_LI   0x08
 
#define XHCI_PORT_HLPMC   0x0C
 
#define XHCI_PORTSC_CCS   0x00000001
 
#define XHCI_PORTSC_PED   0x00000002
 
#define XHCI_PORTSC_OCA   0x00000008
 
#define XHCI_PORTSC_PR   0x00000010
 
#define XHCI_PORTSC_PLS_SHIFT   5
 
#define XHCI_PORTSC_PLS_MASK   0x000001E0
 
#define XHCI_PORTSC_PP   0x00000200
 
#define XHCI_PORTSC_SPEED_SHIFT   10
 
#define XHCI_PORTSC_SPEED_MASK   0x00003C00
 
#define XHCI_PORTSC_PIC_SHIFT   14
 
#define XHCI_PORTSC_PIC_MASK   0x0000C000
 
#define XHCI_PORTSC_LWS   0x00010000
 
#define XHCI_PORTSC_CSC   0x00020000
 
#define XHCI_PORTSC_PEC   0x00040000
 
#define XHCI_PORTSC_WRC   0x00080000
 
#define XHCI_PORTSC_OCC   0x00100000
 
#define XHCI_PORTSC_PRC   0x00200000
 
#define XHCI_PORTSC_PLC   0x00400000
 
#define XHCI_PORTSC_CEC   0x00800000
 
#define XHCI_PORTSC_CAS   0x01000000
 
#define XHCI_PORTSC_WAKE_SHIFT   25
 
#define XHCI_PORTSC_WAKE_MASK   0x0E000000
 
#define XHCI_PORTSC_DR   0x40000000
 
#define XHCI_PORTSC_WPR   0x80000000
 
#define XHCI_PORTSC_PRESERVE   (XHCI_PORTSC_PP | XHCI_PORTSC_PIC_MASK | XHCI_PORTSC_WAKE_MASK)
 
#define XHCI_PLS_RESUME   15
 
#define XHCI_SPEED_FULL   1
 
#define XHCI_SPEED_LOW   2
 
#define XHCI_SPEED_HIGH   3
 
#define XHCI_SPEED_SUPER   4
 
#define XHCI_PORTPMSC_U1_TIMEOUT_MASK   0x000000FF
 
#define XHCI_PORTPMSC_U2_TIMEOUT_SHIFT   8
 
#define XHCI_PORTPMSC_U2_TIMEOUT_MASK   0x0000FF00
 
#define XHCI_PORTPMSC_FLA   0x00010000
 
#define XHCI_PORTPMSC_RWE   0x00000008
 
#define XHCI_PORTPMSC_BESL_SHIFT   4
 
#define XHCI_PORTPMSC_BESL_MASK   0x000000F0
 
#define XHCI_PORTPMSC_L1_SLOT_SHIFT   8
 
#define XHCI_PORTPMSC_L1_SLOT_MASK   0x0000FF00
 
#define XHCI_PORTPMSC_HLE   0x00010000
 
#define XHCI_PORTPMSC_TEST_SHIFT   28
 
#define XHCI_PORTPMSC_TEST_MASK   0xF0000000
 
#define XHCI_PORTLI_ERROR_COUNT_MASK   0x0000FFFF
 
#define XHCI_PORTLI_RX_LANES_SHIFT   16
 
#define XHCI_PORTLI_RX_LANES_MASK   0x000F0000
 
#define XHCI_PORTLI_TX_LANES_SHIFT   20
 
#define XHCI_PORTLI_TX_LANES_MASK   0x00F00000
 
#define XHCI_PORTHLPMC_HIRDM_MASK   0x00000003
 
#define XHCI_PORTHLPMC_L1_TIMEOUT_SHIFT   2
 
#define XHCI_PORTHLPMC_L1_TIMEOUT_MASK   0x000003FC
 
#define XHCI_PORTHLPMC_BESLD_SHIFT   10
 
#define XHCI_PORTHLPMC_BESLD_MASK   0x00003C00
 
#define XHCI_EXTCAP_SUPPORTED_PROTOCOL   2
 
#define XHCI_PROTOCOL_REVISION   0x00
 
#define XHCI_PROTOCOL_NAME   0x04
 
#define XHCI_PROTOCOL_PORTS   0x08
 
#define XHCI_PROTOCOL_PSI   0x10
 
#define XHCI_PROTOCOL_MINOR_SHIFT   16
 
#define XHCI_PROTOCOL_MAJOR_SHIFT   24
 
#define XHCI_PROTOCOL_NAME_USB   0x20425355
 
#define XHCI_PROTOCOL_OFFSET_MASK   0x000000FF
 
#define XHCI_PROTOCOL_COUNT_SHIFT   8
 
#define XHCI_PROTOCOL_COUNT_MASK   0x0000FF00
 
#define XHCI_PROTOCOL_HSO   0x00020000
 
#define XHCI_PROTOCOL_IHI   0x00040000
 
#define XHCI_PROTOCOL_HLC   0x00080000
 
#define XHCI_PROTOCOL_BLC   0x00100000
 
#define XHCI_PROTOCOL_MHD_SHIFT   25
 
#define XHCI_PROTOCOL_MHD_MASK   0x0E000000
 
#define XHCI_PROTOCOL_PSIC_SHIFT   28
 
#define XHCI_PSI_ID_MASK   0x0000000F
 
#define XHCI_PSI_EXPONENT_SHIFT   4
 
#define XHCI_PSI_EXPONENT_MASK   0x00000030
 
#define XHCI_PSI_TYPE_SHIFT   6
 
#define XHCI_PSI_TYPE_MASK   0x000000C0
 
#define XHCI_PSI_MANTISSA_SHIFT   16
 
#define XHCI_PSI_TYPE_SYMMETRIC   0
 
#define XHCI_PSI_TYPE_ASYMMETRIC_RX   2
 
#define XHCI_PSI_TYPE_ASYMMETRIC_TX   3
 
#define XHCI_EXTCAP_DEBUG   10
 
#define XHCI_DBC_DCST   0x24
 
#define XHCI_DBC_DCST_PORT_SHIFT   24
 
#define XHCI_EVENT_PORT_ID_SHIFT   24
 
#define XHCI_TRANSFER_EVENT_ED   0x00000004
 
#define XHCI_EVENT_DATA_TYPE_MASK   0x00000003
 
#define XHCI_ERDP_SEGMENT_MASK   0x00000007
 
#define XHCI_IMOD_INTERVAL_50US   0x000000C8
 
#define XHCI_CAP_LENGTH_VERSION   0x00
 
#define XHCI_CAP_HCSPARAMS1   0x04
 
#define XHCI_CAP_HCSPARAMS2   0x08
 
#define XHCI_CAP_HCSPARAMS3   0x0C
 
#define XHCI_CAP_HCCPARAMS1   0x10
 
#define XHCI_CAP_DBOFF   0x14
 
#define XHCI_CAP_RTSOFF   0x18
 
#define XHCI_CAP_HCCPARAMS2   0x1C
 
#define XHCI_CAPLENGTH_MASK   0x000000FF
 
#define XHCI_HCIVERSION_MAJOR_SHIFT   24
 
#define XHCI_HCIVERSION_MINOR_SHIFT   16
 
#define XHCI_HCS1_MAX_SLOTS_MASK   0x000000FF
 
#define XHCI_HCS1_MAX_INTRS_SHIFT   8
 
#define XHCI_HCS1_MAX_INTRS_MASK   0x0007FF00
 
#define XHCI_HCS1_MAX_PORTS_SHIFT   24
 
#define XHCI_HCS2_IST_MASK   0x0000000F
 
#define XHCI_HCS2_ERST_MAX_SHIFT   4
 
#define XHCI_HCS2_ERST_MAX_MASK   0x000000F0
 
#define XHCI_HCS2_SCRATCH_HI_SHIFT   21
 
#define XHCI_HCS2_SCRATCH_HI_MASK   0x03E00000
 
#define XHCI_HCS2_SPR   0x04000000
 
#define XHCI_HCS2_SCRATCH_LO_SHIFT   27
 
#define XHCI_HCS3_U1_LATENCY_MASK   0x000000FF
 
#define XHCI_HCS3_U2_LATENCY_SHIFT   16
 
#define XHCI_HCC1_AC64   0x00000001
 
#define XHCI_HCC1_CSZ   0x00000004
 
#define XHCI_HCC1_CFC   0x00000800
 
#define XHCI_HCC1_MAX_PSA_SHIFT   12
 
#define XHCI_HCC1_MAX_PSA_MASK   0x0000F000
 
#define XHCI_HCC1_XECP_SHIFT   16
 
#define XHCI_HCC2_CMC   0x00000002
 
#define XHCI_HCC2_LEC   0x00000010
 
#define XHCI_HCC2_ETC   0x00000040
 
#define XHCI_OP_USBCMD   0x00
 
#define XHCI_OP_USBSTS   0x04
 
#define XHCI_OP_PAGESIZE   0x08
 
#define XHCI_OP_DNCTRL   0x14
 
#define XHCI_OP_CRCR   0x18
 
#define XHCI_OP_PORT_BASE   0x400
 
#define XHCI_OP_PORT_STRIDE   0x10
 
#define XHCI_USBCMD_RS   0x00000001
 
#define XHCI_USBCMD_HCRST   0x00000002
 
#define XHCI_USBCMD_INTE   0x00000004
 
#define XHCI_USBCMD_HSEE   0x00000008
 
#define XHCI_USBCMD_CSS   0x00000100
 
#define XHCI_USBCMD_CRS   0x00000200
 
#define XHCI_USBCMD_EWE   0x00000400
 
#define XHCI_USBCMD_CME   0x00002000
 
#define XHCI_USBCMD_ETE   0x00004000
 
#define XHCI_USBSTS_HCH   0x00000001
 
#define XHCI_USBSTS_HSE   0x00000004
 
#define XHCI_USBSTS_EINT   0x00000008
 
#define XHCI_USBSTS_PCD   0x00000010
 
#define XHCI_USBSTS_SSS   0x00000100
 
#define XHCI_USBSTS_RSS   0x00000200
 
#define XHCI_USBSTS_SRE   0x00000400
 
#define XHCI_USBSTS_CNR   0x00000800
 
#define XHCI_USBSTS_HCE   0x00001000
 
#define XHCI_PAGESIZE_4K   0x00000001
 
#define XHCI_DNCTRL_FUNCTION_WAKE   0x00000002
 
#define XHCI_RT_MFINDEX   0x00
 
#define XHCI_MFINDEX_MASK   0x00003FFF
 
#define XHCI_DOORBELL_STRIDE   4
 
#define XHCI_EXTCAP_ID_MASK   0x000000FF
 
#define XHCI_EXTCAP_NEXT_SHIFT   8
 
#define XHCI_EXTCAP_NEXT_MASK   0x0000FF00
 
#define XHCI_EXTCAP_LEGACY   1
 
#define XHCI_LEGSUP_BIOS_OWNED_BYTE   0x02
 
#define XHCI_LEGSUP_OS_OWNED_BYTE   0x03
 
#define XHCI_LEGSUP_OWNED   0x01
 
#define XHCI_LEGSUP_CTLSTS   0x04
 
#define XHCI_LEGCTLSTS_KEEP_MASK   0x1FFFDFFF
 
#define XHCI_CONTEXT_SIZE_32   32
 
#define XHCI_CONTEXT_SIZE_64   64
 
#define XHCI_DEVICE_CONTEXT_COUNT   32
 
#define XHCI_INPUT_CONTEXT_COUNT   33
 
#define XHCI_SLOT_STATE_DISABLED   0
 
#define XHCI_SLOT_STATE_DEFAULT   1
 
#define XHCI_SLOT_STATE_ADDRESSED   2
 
#define XHCI_SLOT_STATE_CONFIGURED   3
 
#define XHCI_ENDPOINT_STATE_DISABLED   0
 
#define XHCI_ENDPOINT_STATE_RUNNING   1
 
#define XHCI_ENDPOINT_STATE_HALTED   2
 
#define XHCI_ENDPOINT_STATE_STOPPED   3
 
#define XHCI_ENDPOINT_STATE_ERROR   4
 
#define XHCI_ENDPOINT_TYPE_ISOCH_OUT   1
 
#define XHCI_ENDPOINT_TYPE_BULK_OUT   2
 
#define XHCI_ENDPOINT_TYPE_INTERRUPT_OUT   3
 
#define XHCI_ENDPOINT_TYPE_CONTROL   4
 
#define XHCI_ENDPOINT_TYPE_ISOCH_IN   5
 
#define XHCI_ENDPOINT_TYPE_BULK_IN   6
 
#define XHCI_ENDPOINT_TYPE_INTERRUPT_IN   7
 
#define XHCI_CMD_SLOT_TYPE_SHIFT   16
 
#define XHCI_CMD_BLOCK_SET_ADDRESS   0x00000200
 
#define XHCI_CMD_DECONFIGURE   0x00000200
 
#define XHCI_COMPLETION_PARAMETER_MASK   0x00FFFFFF
 
#define XHCI_NOTIFICATION_FUNCTION_WAKE   1
 
#define XHCI_NOTIFICATION_DATA_SHIFT   8
 
#define XHCI_NOTIFICATION_DATA_MASK   0x0000FF00
 
#define XHCI_CMD_TRANSFER_STATE_PRESERVE   0x00000200
 
#define XHCI_CMD_SUSPEND   0x00800000
 
#define XHCI_CMD_STREAM_ID_SHIFT   16
 
#define XHCI_DEQUEUE_CYCLE   0x0000000000000001ULL
 
#define XHCI_DEQUEUE_FLAGS_MASK   0x000000000000000FULL
 
#define XHCI_STREAM_EDTLA_MASK   0x00FFFFFF
 
#define XHCI_TRB_CHAIN   0x00000010
 
#define XHCI_TRB_INTERRUPTER_SHIFT   22
 
#define XHCI_TRB_INTERRUPTER_MASK   0x000003FF
 
#define XHCI_DEQUEUE_SCT_SHIFT   1
 
#define XHCI_SCT_PRIMARY_RING   1
 
#define USB3_URB_RESERVED_RESOURCES   0x00000010
 
#define XHCI_TRB_LENGTH_MASK   0x0001FFFF
 
#define XHCI_TRB_TD_SIZE_SHIFT   17
 
#define XHCI_TRB_ENT   0x00000002
 
#define XHCI_TRB_IOC   0x00000020
 
#define XHCI_TRB_IDT   0x00000040
 
#define XHCI_TRB_DIR_IN   0x00010000
 
#define XHCI_TRB_TRT_SHIFT   16
 
#define XHCI_TRB_TRT_NO_DATA   0
 
#define XHCI_TRB_TRT_OUT   2
 
#define XHCI_TRB_TRT_IN   3
 
#define XHCI_TRANSFER_EVENT_LENGTH_MASK   0x00FFFFFF
 
#define XHCI_TRB_BEI   0x00000200
 
#define XHCI_ISOCH_TBC_SHIFT   7
 
#define XHCI_ISOCH_TLBPC_SHIFT   16
 
#define XHCI_ISOCH_FRAME_ID_SHIFT   20
 
#define XHCI_ISOCH_FRAME_ID_MASK   0x000007FF
 
#define XHCI_EXTCAP_USB4_TUNNELING   0x12
 
#define XHCI_USB4_CAP_PORTSC_TUNNEL_VALID   0x00010000
 
#define XHCI_PORTSC_TUNNELED   0x00000004
 
#define XHCI_VENDOR_PORT_TUNNEL_BASE   0x8AC4
 
#define XHCI_VENDOR_PORT_TUNNEL_STRIDE   0x20
 
#define XHCI_VENDOR_PORT_TUNNEL_ACTIVE   0x00000010
 
#define XHCI_VENDOR_TUNNEL_STATUS   0xCD20
 
#define XHCI_VENDOR_TUNNEL_STATUS_ACTIVE   0x00000001
 

Typedefs

typedef struct _XHCI_TRB XHCI_TRB
 
typedef struct _XHCI_TRB * PXHCI_TRB
 
typedef struct _XHCI_ERST_ENTRY XHCI_ERST_ENTRY
 
typedef struct _XHCI_ERST_ENTRY * PXHCI_ERST_ENTRY
 
typedef struct _XHCI_SLOT_CONTEXT XHCI_SLOT_CONTEXT
 
typedef struct _XHCI_SLOT_CONTEXT * PXHCI_SLOT_CONTEXT
 
typedef struct _XHCI_SLOT_CONTEXT64 XHCI_SLOT_CONTEXT64
 
typedef struct _XHCI_SLOT_CONTEXT64 * PXHCI_SLOT_CONTEXT64
 
typedef struct _XHCI_ENDPOINT_CONTEXT XHCI_ENDPOINT_CONTEXT
 
typedef struct _XHCI_ENDPOINT_CONTEXT * PXHCI_ENDPOINT_CONTEXT
 
typedef struct _XHCI_ENDPOINT_CONTEXT64 XHCI_ENDPOINT_CONTEXT64
 
typedef struct _XHCI_ENDPOINT_CONTEXT64 * PXHCI_ENDPOINT_CONTEXT64
 
typedef struct _XHCI_INPUT_CONTROL_CONTEXT XHCI_INPUT_CONTROL_CONTEXT
 
typedef struct _XHCI_INPUT_CONTROL_CONTEXT * PXHCI_INPUT_CONTROL_CONTEXT
 
typedef struct _XHCI_INPUT_CONTROL_CONTEXT64 XHCI_INPUT_CONTROL_CONTEXT64
 
typedef struct _XHCI_INPUT_CONTROL_CONTEXT64 * PXHCI_INPUT_CONTROL_CONTEXT64
 
typedef struct _XHCI_STREAM_CONTEXT XHCI_STREAM_CONTEXT
 
typedef struct _XHCI_STREAM_CONTEXT * PXHCI_STREAM_CONTEXT
 

Enumerations

enum class  XhciTrbType : ULONG {
  Normal = 1 , SetupStage = 2 , DataStage = 3 , StatusStage = 4 ,
  Isoch = 5 , Link = 6 , EventData = 7 , NoOp = 8 ,
  EnableSlot = 9 , DisableSlot = 10 , AddressDevice = 11 , ConfigureEndpoint = 12 ,
  EvaluateContext = 13 , ResetEndpoint = 14 , StopEndpoint = 15 , SetTrDequeuePointer = 16 ,
  ResetDevice = 17 , ForceEvent = 18 , NegotiateBandwidth = 19 , SetLatencyToleranceValue = 20 ,
  GetPortBandwidth = 21 , ForceHeader = 22 , NoOpCommand = 23 , TransferEvent = 32 ,
  CommandCompletionEvent = 33 , PortStatusChangeEvent = 34 , BandwidthRequestEvent = 35 , DoorbellEvent = 36 ,
  HostControllerEvent = 37 , DeviceNotificationEvent = 38 , MfindexWrapEvent = 39 , VendorCommandCompletionEvent = 48 ,
  VendorFirmwareVersion = 49 , VendorFirmwareVersionAlt = 51 , VendorFirmwareVersionAltSetup = 52
}
 
enum class  XhciCompletionCode : ULONG {
  Invalid = 0 , Success = 1 , DataBufferError = 2 , BabbleDetected = 3 ,
  UsbTransactionError = 4 , TrbError = 5 , StallError = 6 , ResourceError = 7 ,
  BandwidthError = 8 , NoSlotsAvailable = 9 , InvalidStreamType = 10 , SlotNotEnabled = 11 ,
  EndpointNotEnabled = 12 , ShortPacket = 13 , RingUnderrun = 14 , RingOverrun = 15 ,
  VfEventRingFull = 16 , ParameterError = 17 , BandwidthOverrun = 18 , ContextStateError = 19 ,
  NoPingResponse = 20 , EventRingFull = 21 , IncompatibleDevice = 22 , MissedService = 23 ,
  CommandRingStopped = 24 , CommandAborted = 25 , Stopped = 26 , StoppedLengthInvalid = 27 ,
  StoppedShortPacket = 28 , MaxExitLatencyTooLarge = 29 , IsochBufferOverrun = 31 , EventLost = 32 ,
  UndefinedError = 33 , InvalidStreamId = 34 , SecondaryBandwidthError = 35 , SplitTransactionError = 36 ,
  VendorQuirk199 = 199
}
 

Functions

 C_ASSERT (sizeof(XHCI_TRB)==16)
 
FORCEINLINE ULONG NTAPI XhciTrbType (_In_ const XHCI_TRB *Trb)
 
FORCEINLINE ULONG NTAPI XhciTrbCompletionCode (_In_ const XHCI_TRB *Trb)
 
FORCEINLINE ULONG NTAPI XhciTrbSlotId (_In_ const XHCI_TRB *Trb)
 
FORCEINLINE ULONG64 NTAPI XhciTrbPointer (_In_ const XHCI_TRB *Trb)
 
 C_ASSERT (sizeof(XHCI_ERST_ENTRY)==16)
 
 C_ASSERT (sizeof(XHCI_SLOT_CONTEXT)==XHCI_CONTEXT_SIZE_32)
 
 C_ASSERT (sizeof(XHCI_SLOT_CONTEXT64)==XHCI_CONTEXT_SIZE_64)
 
 C_ASSERT (sizeof(XHCI_ENDPOINT_CONTEXT)==XHCI_CONTEXT_SIZE_32)
 
 C_ASSERT (sizeof(XHCI_ENDPOINT_CONTEXT64)==XHCI_CONTEXT_SIZE_64)
 
 C_ASSERT (sizeof(XHCI_INPUT_CONTROL_CONTEXT)==XHCI_CONTEXT_SIZE_32)
 
 C_ASSERT (sizeof(XHCI_INPUT_CONTROL_CONTEXT64)==XHCI_CONTEXT_SIZE_64)
 
 C_ASSERT (sizeof(XHCI_STREAM_CONTEXT)==16)
 

Macro Definition Documentation

◆ USB3_URB_RESERVED_RESOURCES

#define USB3_URB_RESERVED_RESOURCES   0x00000010

Definition at line 617 of file xhcihw.h.

◆ XHCI_CAP_DBOFF

#define XHCI_CAP_DBOFF   0x14

Definition at line 340 of file xhcihw.h.

◆ XHCI_CAP_HCCPARAMS1

#define XHCI_CAP_HCCPARAMS1   0x10

Definition at line 339 of file xhcihw.h.

◆ XHCI_CAP_HCCPARAMS2

#define XHCI_CAP_HCCPARAMS2   0x1C

Definition at line 342 of file xhcihw.h.

◆ XHCI_CAP_HCSPARAMS1

#define XHCI_CAP_HCSPARAMS1   0x04

Definition at line 336 of file xhcihw.h.

◆ XHCI_CAP_HCSPARAMS2

#define XHCI_CAP_HCSPARAMS2   0x08

Definition at line 337 of file xhcihw.h.

◆ XHCI_CAP_HCSPARAMS3

#define XHCI_CAP_HCSPARAMS3   0x0C

Definition at line 338 of file xhcihw.h.

◆ XHCI_CAP_LENGTH_VERSION

#define XHCI_CAP_LENGTH_VERSION   0x00

Definition at line 335 of file xhcihw.h.

◆ XHCI_CAP_RTSOFF

#define XHCI_CAP_RTSOFF   0x18

Definition at line 341 of file xhcihw.h.

◆ XHCI_CAPLENGTH_MASK

#define XHCI_CAPLENGTH_MASK   0x000000FF

Definition at line 344 of file xhcihw.h.

◆ XHCI_CMD_BLOCK_SET_ADDRESS

#define XHCI_CMD_BLOCK_SET_ADDRESS   0x00000200

Definition at line 572 of file xhcihw.h.

◆ XHCI_CMD_DECONFIGURE

#define XHCI_CMD_DECONFIGURE   0x00000200

Definition at line 573 of file xhcihw.h.

◆ XHCI_CMD_SLOT_TYPE_SHIFT

#define XHCI_CMD_SLOT_TYPE_SHIFT   16

Definition at line 571 of file xhcihw.h.

◆ XHCI_CMD_STREAM_ID_SHIFT

#define XHCI_CMD_STREAM_ID_SHIFT   16

Definition at line 590 of file xhcihw.h.

◆ XHCI_CMD_SUSPEND

#define XHCI_CMD_SUSPEND   0x00800000

Definition at line 587 of file xhcihw.h.

◆ XHCI_CMD_TRANSFER_STATE_PRESERVE

#define XHCI_CMD_TRANSFER_STATE_PRESERVE   0x00000200

Definition at line 586 of file xhcihw.h.

◆ XHCI_COMPLETION_PARAMETER_MASK

#define XHCI_COMPLETION_PARAMETER_MASK   0x00FFFFFF

Definition at line 576 of file xhcihw.h.

◆ XHCI_CONFIG_MAX_SLOTS_MASK

#define XHCI_CONFIG_MAX_SLOTS_MASK   0x000000FF

Definition at line 191 of file xhcihw.h.

◆ XHCI_CONTEXT_SIZE_32

#define XHCI_CONTEXT_SIZE_32   32

Definition at line 445 of file xhcihw.h.

◆ XHCI_CONTEXT_SIZE_64

#define XHCI_CONTEXT_SIZE_64   64

Definition at line 446 of file xhcihw.h.

◆ XHCI_CRCR_ABORT

#define XHCI_CRCR_ABORT   0x00000004

Definition at line 179 of file xhcihw.h.

◆ XHCI_CRCR_POINTER_MASK

#define XHCI_CRCR_POINTER_MASK   0xFFFFFFFFFFFFFFC0ULL

Definition at line 181 of file xhcihw.h.

◆ XHCI_CRCR_RING_CYCLE

#define XHCI_CRCR_RING_CYCLE   0x00000001

Definition at line 177 of file xhcihw.h.

◆ XHCI_CRCR_RUNNING

#define XHCI_CRCR_RUNNING   0x00000008

Definition at line 180 of file xhcihw.h.

◆ XHCI_CRCR_STOP

#define XHCI_CRCR_STOP   0x00000002

Definition at line 178 of file xhcihw.h.

◆ XHCI_DBC_DCST

#define XHCI_DBC_DCST   0x24

Definition at line 312 of file xhcihw.h.

◆ XHCI_DBC_DCST_PORT_SHIFT

#define XHCI_DBC_DCST_PORT_SHIFT   24

Definition at line 313 of file xhcihw.h.

◆ XHCI_DCBAA_ENTRIES

#define XHCI_DCBAA_ENTRIES   256

Definition at line 194 of file xhcihw.h.

◆ XHCI_DEQUEUE_CYCLE

#define XHCI_DEQUEUE_CYCLE   0x0000000000000001ULL

Definition at line 593 of file xhcihw.h.

◆ XHCI_DEQUEUE_FLAGS_MASK

#define XHCI_DEQUEUE_FLAGS_MASK   0x000000000000000FULL

Definition at line 594 of file xhcihw.h.

◆ XHCI_DEQUEUE_SCT_SHIFT

#define XHCI_DEQUEUE_SCT_SHIFT   1

Definition at line 612 of file xhcihw.h.

◆ XHCI_DEVICE_CONTEXT_COUNT

#define XHCI_DEVICE_CONTEXT_COUNT   32

Output device context: slot plus DCI 1..31. Input context: control, slot, DCI 1..31.

Definition at line 449 of file xhcihw.h.

◆ XHCI_DNCTRL_FUNCTION_WAKE

#define XHCI_DNCTRL_FUNCTION_WAKE   0x00000002

Definition at line 415 of file xhcihw.h.

◆ XHCI_DOORBELL_STRIDE

#define XHCI_DOORBELL_STRIDE   4

Definition at line 422 of file xhcihw.h.

◆ XHCI_ENDPOINT_STATE_DISABLED

#define XHCI_ENDPOINT_STATE_DISABLED   0

Definition at line 533 of file xhcihw.h.

◆ XHCI_ENDPOINT_STATE_ERROR

#define XHCI_ENDPOINT_STATE_ERROR   4

Definition at line 537 of file xhcihw.h.

◆ XHCI_ENDPOINT_STATE_HALTED

#define XHCI_ENDPOINT_STATE_HALTED   2

Definition at line 535 of file xhcihw.h.

◆ XHCI_ENDPOINT_STATE_RUNNING

#define XHCI_ENDPOINT_STATE_RUNNING   1

Definition at line 534 of file xhcihw.h.

◆ XHCI_ENDPOINT_STATE_STOPPED

#define XHCI_ENDPOINT_STATE_STOPPED   3

Definition at line 536 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_BULK_IN

#define XHCI_ENDPOINT_TYPE_BULK_IN   6

Definition at line 545 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_BULK_OUT

#define XHCI_ENDPOINT_TYPE_BULK_OUT   2

Definition at line 541 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_CONTROL

#define XHCI_ENDPOINT_TYPE_CONTROL   4

Definition at line 543 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_INTERRUPT_IN

#define XHCI_ENDPOINT_TYPE_INTERRUPT_IN   7

Definition at line 546 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_INTERRUPT_OUT

#define XHCI_ENDPOINT_TYPE_INTERRUPT_OUT   3

Definition at line 542 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_ISOCH_IN

#define XHCI_ENDPOINT_TYPE_ISOCH_IN   5

Definition at line 544 of file xhcihw.h.

◆ XHCI_ENDPOINT_TYPE_ISOCH_OUT

#define XHCI_ENDPOINT_TYPE_ISOCH_OUT   1

Definition at line 540 of file xhcihw.h.

◆ XHCI_ERDP

#define XHCI_ERDP   0x18

Definition at line 157 of file xhcihw.h.

◆ XHCI_ERDP_BUSY

#define XHCI_ERDP_BUSY   0x00000008

Definition at line 161 of file xhcihw.h.

◆ XHCI_ERDP_SEGMENT_MASK

#define XHCI_ERDP_SEGMENT_MASK   0x00000007

Definition at line 327 of file xhcihw.h.

◆ XHCI_ERSTBA

#define XHCI_ERSTBA   0x10

Definition at line 156 of file xhcihw.h.

◆ XHCI_ERSTSZ

#define XHCI_ERSTSZ   0x08

Definition at line 155 of file xhcihw.h.

◆ XHCI_EVENT_DATA_TYPE_MASK

#define XHCI_EVENT_DATA_TYPE_MASK   0x00000003

Definition at line 324 of file xhcihw.h.

◆ XHCI_EVENT_PORT_ID_SHIFT

#define XHCI_EVENT_PORT_ID_SHIFT   24

Definition at line 316 of file xhcihw.h.

◆ XHCI_EXTCAP_DEBUG

#define XHCI_EXTCAP_DEBUG   10

Definition at line 311 of file xhcihw.h.

◆ XHCI_EXTCAP_ID_MASK

#define XHCI_EXTCAP_ID_MASK   0x000000FF

Definition at line 425 of file xhcihw.h.

◆ XHCI_EXTCAP_LEGACY

#define XHCI_EXTCAP_LEGACY   1

Definition at line 428 of file xhcihw.h.

◆ XHCI_EXTCAP_NEXT_MASK

#define XHCI_EXTCAP_NEXT_MASK   0x0000FF00

Definition at line 427 of file xhcihw.h.

◆ XHCI_EXTCAP_NEXT_SHIFT

#define XHCI_EXTCAP_NEXT_SHIFT   8

Definition at line 426 of file xhcihw.h.

◆ XHCI_EXTCAP_SUPPORTED_PROTOCOL

#define XHCI_EXTCAP_SUPPORTED_PROTOCOL   2

Definition at line 277 of file xhcihw.h.

◆ XHCI_EXTCAP_USB4_TUNNELING

#define XHCI_EXTCAP_USB4_TUNNELING   0x12

Definition at line 645 of file xhcihw.h.

◆ XHCI_HCC1_AC64

#define XHCI_HCC1_AC64   0x00000001

Definition at line 368 of file xhcihw.h.

◆ XHCI_HCC1_CFC

#define XHCI_HCC1_CFC   0x00000800

Definition at line 370 of file xhcihw.h.

◆ XHCI_HCC1_CSZ

#define XHCI_HCC1_CSZ   0x00000004

Definition at line 369 of file xhcihw.h.

◆ XHCI_HCC1_MAX_PSA_MASK

#define XHCI_HCC1_MAX_PSA_MASK   0x0000F000

Definition at line 372 of file xhcihw.h.

◆ XHCI_HCC1_MAX_PSA_SHIFT

#define XHCI_HCC1_MAX_PSA_SHIFT   12

Definition at line 371 of file xhcihw.h.

◆ XHCI_HCC1_XECP_SHIFT

#define XHCI_HCC1_XECP_SHIFT   16

Definition at line 373 of file xhcihw.h.

◆ XHCI_HCC2_CMC

#define XHCI_HCC2_CMC   0x00000002

Definition at line 376 of file xhcihw.h.

◆ XHCI_HCC2_ETC

#define XHCI_HCC2_ETC   0x00000040

Definition at line 378 of file xhcihw.h.

◆ XHCI_HCC2_LEC

#define XHCI_HCC2_LEC   0x00000010

Definition at line 377 of file xhcihw.h.

◆ XHCI_HCIVERSION_MAJOR_SHIFT

#define XHCI_HCIVERSION_MAJOR_SHIFT   24

Definition at line 345 of file xhcihw.h.

◆ XHCI_HCIVERSION_MINOR_SHIFT

#define XHCI_HCIVERSION_MINOR_SHIFT   16

Definition at line 346 of file xhcihw.h.

◆ XHCI_HCS1_MAX_INTRS_MASK

#define XHCI_HCS1_MAX_INTRS_MASK   0x0007FF00

Definition at line 351 of file xhcihw.h.

◆ XHCI_HCS1_MAX_INTRS_SHIFT

#define XHCI_HCS1_MAX_INTRS_SHIFT   8

Definition at line 350 of file xhcihw.h.

◆ XHCI_HCS1_MAX_PORTS_SHIFT

#define XHCI_HCS1_MAX_PORTS_SHIFT   24

Definition at line 352 of file xhcihw.h.

◆ XHCI_HCS1_MAX_SLOTS_MASK

#define XHCI_HCS1_MAX_SLOTS_MASK   0x000000FF

Definition at line 349 of file xhcihw.h.

◆ XHCI_HCS2_ERST_MAX_MASK

#define XHCI_HCS2_ERST_MAX_MASK   0x000000F0

Definition at line 357 of file xhcihw.h.

◆ XHCI_HCS2_ERST_MAX_SHIFT

#define XHCI_HCS2_ERST_MAX_SHIFT   4

Definition at line 356 of file xhcihw.h.

◆ XHCI_HCS2_IST_MASK

#define XHCI_HCS2_IST_MASK   0x0000000F

Definition at line 355 of file xhcihw.h.

◆ XHCI_HCS2_SCRATCH_HI_MASK

#define XHCI_HCS2_SCRATCH_HI_MASK   0x03E00000

Definition at line 359 of file xhcihw.h.

◆ XHCI_HCS2_SCRATCH_HI_SHIFT

#define XHCI_HCS2_SCRATCH_HI_SHIFT   21

Definition at line 358 of file xhcihw.h.

◆ XHCI_HCS2_SCRATCH_LO_SHIFT

#define XHCI_HCS2_SCRATCH_LO_SHIFT   27

Definition at line 361 of file xhcihw.h.

◆ XHCI_HCS2_SPR

#define XHCI_HCS2_SPR   0x04000000

Definition at line 360 of file xhcihw.h.

◆ XHCI_HCS3_U1_LATENCY_MASK

#define XHCI_HCS3_U1_LATENCY_MASK   0x000000FF

Definition at line 364 of file xhcihw.h.

◆ XHCI_HCS3_U2_LATENCY_SHIFT

#define XHCI_HCS3_U2_LATENCY_SHIFT   16

Definition at line 365 of file xhcihw.h.

◆ XHCI_IMAN

#define XHCI_IMAN   0x00

Definition at line 153 of file xhcihw.h.

◆ XHCI_IMAN_ENABLE

#define XHCI_IMAN_ENABLE   0x00000002

Definition at line 160 of file xhcihw.h.

◆ XHCI_IMAN_PENDING

#define XHCI_IMAN_PENDING   0x00000001

Definition at line 159 of file xhcihw.h.

◆ XHCI_IMOD

#define XHCI_IMOD   0x04

Definition at line 154 of file xhcihw.h.

◆ XHCI_IMOD_INTERVAL_50US

#define XHCI_IMOD_INTERVAL_50US   0x000000C8

Definition at line 330 of file xhcihw.h.

◆ XHCI_INPUT_CONTEXT_COUNT

#define XHCI_INPUT_CONTEXT_COUNT   33

Definition at line 450 of file xhcihw.h.

◆ XHCI_INTERRUPTER_STRIDE

#define XHCI_INTERRUPTER_STRIDE   0x20

Definition at line 152 of file xhcihw.h.

◆ XHCI_ISOCH_FRAME_ID_MASK

#define XHCI_ISOCH_FRAME_ID_MASK   0x000007FF

Definition at line 642 of file xhcihw.h.

◆ XHCI_ISOCH_FRAME_ID_SHIFT

#define XHCI_ISOCH_FRAME_ID_SHIFT   20

Definition at line 641 of file xhcihw.h.

◆ XHCI_ISOCH_TBC_SHIFT

#define XHCI_ISOCH_TBC_SHIFT   7

Definition at line 639 of file xhcihw.h.

◆ XHCI_ISOCH_TLBPC_SHIFT

#define XHCI_ISOCH_TLBPC_SHIFT   16

Definition at line 640 of file xhcihw.h.

◆ XHCI_LEGCTLSTS_KEEP_MASK

#define XHCI_LEGCTLSTS_KEEP_MASK   0x1FFFDFFF

USBLEGCTLSTS write mask: SMI on OS Ownership off, the RW1C bits 31:29 written as 0.

Definition at line 437 of file xhcihw.h.

◆ XHCI_LEGSUP_BIOS_OWNED_BYTE

#define XHCI_LEGSUP_BIOS_OWNED_BYTE   0x02

Definition at line 431 of file xhcihw.h.

◆ XHCI_LEGSUP_CTLSTS

#define XHCI_LEGSUP_CTLSTS   0x04

Definition at line 434 of file xhcihw.h.

◆ XHCI_LEGSUP_OS_OWNED_BYTE

#define XHCI_LEGSUP_OS_OWNED_BYTE   0x03

Definition at line 432 of file xhcihw.h.

◆ XHCI_LEGSUP_OWNED

#define XHCI_LEGSUP_OWNED   0x01

Definition at line 433 of file xhcihw.h.

◆ XHCI_LINK_TOGGLE_CYCLE

#define XHCI_LINK_TOGGLE_CYCLE   0x00000002

Definition at line 184 of file xhcihw.h.

◆ XHCI_MFINDEX_MASK

#define XHCI_MFINDEX_MASK   0x00003FFF

Definition at line 419 of file xhcihw.h.

◆ XHCI_NOTIFICATION_DATA_MASK

#define XHCI_NOTIFICATION_DATA_MASK   0x0000FF00

Definition at line 581 of file xhcihw.h.

◆ XHCI_NOTIFICATION_DATA_SHIFT

#define XHCI_NOTIFICATION_DATA_SHIFT   8

Definition at line 580 of file xhcihw.h.

◆ XHCI_NOTIFICATION_FUNCTION_WAKE

#define XHCI_NOTIFICATION_FUNCTION_WAKE   1

Definition at line 579 of file xhcihw.h.

◆ XHCI_NOTIFICATION_TYPE_MASK

#define XHCI_NOTIFICATION_TYPE_MASK   0x000000F0

Definition at line 198 of file xhcihw.h.

◆ XHCI_NOTIFICATION_TYPE_SHIFT

#define XHCI_NOTIFICATION_TYPE_SHIFT   4

Definition at line 197 of file xhcihw.h.

◆ XHCI_OP_CONFIG

#define XHCI_OP_CONFIG   0x38

Definition at line 190 of file xhcihw.h.

◆ XHCI_OP_CRCR

#define XHCI_OP_CRCR   0x18

Definition at line 385 of file xhcihw.h.

◆ XHCI_OP_DCBAAP

#define XHCI_OP_DCBAAP   0x30

Definition at line 189 of file xhcihw.h.

◆ XHCI_OP_DNCTRL

#define XHCI_OP_DNCTRL   0x14

Definition at line 384 of file xhcihw.h.

◆ XHCI_OP_PAGESIZE

#define XHCI_OP_PAGESIZE   0x08

Definition at line 383 of file xhcihw.h.

◆ XHCI_OP_PORT_BASE

#define XHCI_OP_PORT_BASE   0x400

Definition at line 386 of file xhcihw.h.

◆ XHCI_OP_PORT_STRIDE

#define XHCI_OP_PORT_STRIDE   0x10

Definition at line 387 of file xhcihw.h.

◆ XHCI_OP_USBCMD

#define XHCI_OP_USBCMD   0x00

Definition at line 381 of file xhcihw.h.

◆ XHCI_OP_USBSTS

#define XHCI_OP_USBSTS   0x04

Definition at line 382 of file xhcihw.h.

◆ XHCI_PAGESIZE_4K

#define XHCI_PAGESIZE_4K   0x00000001

Definition at line 412 of file xhcihw.h.

◆ XHCI_PLS_RESUME

#define XHCI_PLS_RESUME   15

Definition at line 238 of file xhcihw.h.

◆ XHCI_PORT_HLPMC

#define XHCI_PORT_HLPMC   0x0C

Definition at line 206 of file xhcihw.h.

◆ XHCI_PORT_LI

#define XHCI_PORT_LI   0x08

Definition at line 205 of file xhcihw.h.

◆ XHCI_PORT_PMSC

#define XHCI_PORT_PMSC   0x04

Definition at line 204 of file xhcihw.h.

◆ XHCI_PORT_SC

#define XHCI_PORT_SC   0x00

Definition at line 203 of file xhcihw.h.

◆ XHCI_PORTHLPMC_BESLD_MASK

#define XHCI_PORTHLPMC_BESLD_MASK   0x00003C00

Definition at line 274 of file xhcihw.h.

◆ XHCI_PORTHLPMC_BESLD_SHIFT

#define XHCI_PORTHLPMC_BESLD_SHIFT   10

Definition at line 273 of file xhcihw.h.

◆ XHCI_PORTHLPMC_HIRDM_MASK

#define XHCI_PORTHLPMC_HIRDM_MASK   0x00000003

Definition at line 270 of file xhcihw.h.

◆ XHCI_PORTHLPMC_L1_TIMEOUT_MASK

#define XHCI_PORTHLPMC_L1_TIMEOUT_MASK   0x000003FC

Definition at line 272 of file xhcihw.h.

◆ XHCI_PORTHLPMC_L1_TIMEOUT_SHIFT

#define XHCI_PORTHLPMC_L1_TIMEOUT_SHIFT   2

Definition at line 271 of file xhcihw.h.

◆ XHCI_PORTLI_ERROR_COUNT_MASK

#define XHCI_PORTLI_ERROR_COUNT_MASK   0x0000FFFF

Definition at line 263 of file xhcihw.h.

◆ XHCI_PORTLI_RX_LANES_MASK

#define XHCI_PORTLI_RX_LANES_MASK   0x000F0000

Definition at line 265 of file xhcihw.h.

◆ XHCI_PORTLI_RX_LANES_SHIFT

#define XHCI_PORTLI_RX_LANES_SHIFT   16

Definition at line 264 of file xhcihw.h.

◆ XHCI_PORTLI_TX_LANES_MASK

#define XHCI_PORTLI_TX_LANES_MASK   0x00F00000

Definition at line 267 of file xhcihw.h.

◆ XHCI_PORTLI_TX_LANES_SHIFT

#define XHCI_PORTLI_TX_LANES_SHIFT   20

Definition at line 266 of file xhcihw.h.

◆ XHCI_PORTPMSC_BESL_MASK

#define XHCI_PORTPMSC_BESL_MASK   0x000000F0

Definition at line 255 of file xhcihw.h.

◆ XHCI_PORTPMSC_BESL_SHIFT

#define XHCI_PORTPMSC_BESL_SHIFT   4

Definition at line 254 of file xhcihw.h.

◆ XHCI_PORTPMSC_FLA

#define XHCI_PORTPMSC_FLA   0x00010000

Definition at line 250 of file xhcihw.h.

◆ XHCI_PORTPMSC_HLE

#define XHCI_PORTPMSC_HLE   0x00010000

Definition at line 258 of file xhcihw.h.

◆ XHCI_PORTPMSC_L1_SLOT_MASK

#define XHCI_PORTPMSC_L1_SLOT_MASK   0x0000FF00

Definition at line 257 of file xhcihw.h.

◆ XHCI_PORTPMSC_L1_SLOT_SHIFT

#define XHCI_PORTPMSC_L1_SLOT_SHIFT   8

Definition at line 256 of file xhcihw.h.

◆ XHCI_PORTPMSC_RWE

#define XHCI_PORTPMSC_RWE   0x00000008

Definition at line 253 of file xhcihw.h.

◆ XHCI_PORTPMSC_TEST_MASK

#define XHCI_PORTPMSC_TEST_MASK   0xF0000000

Definition at line 260 of file xhcihw.h.

◆ XHCI_PORTPMSC_TEST_SHIFT

#define XHCI_PORTPMSC_TEST_SHIFT   28

Definition at line 259 of file xhcihw.h.

◆ XHCI_PORTPMSC_U1_TIMEOUT_MASK

#define XHCI_PORTPMSC_U1_TIMEOUT_MASK   0x000000FF

Definition at line 247 of file xhcihw.h.

◆ XHCI_PORTPMSC_U2_TIMEOUT_MASK

#define XHCI_PORTPMSC_U2_TIMEOUT_MASK   0x0000FF00

Definition at line 249 of file xhcihw.h.

◆ XHCI_PORTPMSC_U2_TIMEOUT_SHIFT

#define XHCI_PORTPMSC_U2_TIMEOUT_SHIFT   8

Definition at line 248 of file xhcihw.h.

◆ XHCI_PORTSC_CAS

#define XHCI_PORTSC_CAS   0x01000000

Definition at line 228 of file xhcihw.h.

◆ XHCI_PORTSC_CCS

#define XHCI_PORTSC_CCS   0x00000001

Definition at line 209 of file xhcihw.h.

◆ XHCI_PORTSC_CEC

#define XHCI_PORTSC_CEC   0x00800000

Definition at line 227 of file xhcihw.h.

◆ XHCI_PORTSC_CSC

#define XHCI_PORTSC_CSC   0x00020000

Definition at line 221 of file xhcihw.h.

◆ XHCI_PORTSC_DR

#define XHCI_PORTSC_DR   0x40000000

Definition at line 231 of file xhcihw.h.

◆ XHCI_PORTSC_LWS

#define XHCI_PORTSC_LWS   0x00010000

Definition at line 220 of file xhcihw.h.

◆ XHCI_PORTSC_OCA

#define XHCI_PORTSC_OCA   0x00000008

Definition at line 211 of file xhcihw.h.

◆ XHCI_PORTSC_OCC

#define XHCI_PORTSC_OCC   0x00100000

Definition at line 224 of file xhcihw.h.

◆ XHCI_PORTSC_PEC

#define XHCI_PORTSC_PEC   0x00040000

Definition at line 222 of file xhcihw.h.

◆ XHCI_PORTSC_PED

#define XHCI_PORTSC_PED   0x00000002

Definition at line 210 of file xhcihw.h.

◆ XHCI_PORTSC_PIC_MASK

#define XHCI_PORTSC_PIC_MASK   0x0000C000

Definition at line 219 of file xhcihw.h.

◆ XHCI_PORTSC_PIC_SHIFT

#define XHCI_PORTSC_PIC_SHIFT   14

Definition at line 218 of file xhcihw.h.

◆ XHCI_PORTSC_PLC

#define XHCI_PORTSC_PLC   0x00400000

Definition at line 226 of file xhcihw.h.

◆ XHCI_PORTSC_PLS_MASK

#define XHCI_PORTSC_PLS_MASK   0x000001E0

Definition at line 214 of file xhcihw.h.

◆ XHCI_PORTSC_PLS_SHIFT

#define XHCI_PORTSC_PLS_SHIFT   5

Definition at line 213 of file xhcihw.h.

◆ XHCI_PORTSC_PP

#define XHCI_PORTSC_PP   0x00000200

Definition at line 215 of file xhcihw.h.

◆ XHCI_PORTSC_PR

#define XHCI_PORTSC_PR   0x00000010

Definition at line 212 of file xhcihw.h.

◆ XHCI_PORTSC_PRC

#define XHCI_PORTSC_PRC   0x00200000

Definition at line 225 of file xhcihw.h.

◆ XHCI_PORTSC_PRESERVE

RWS bits carried over by every PORTSC write: PP, PIC and the wake enables.

Definition at line 235 of file xhcihw.h.

◆ XHCI_PORTSC_SPEED_MASK

#define XHCI_PORTSC_SPEED_MASK   0x00003C00

Definition at line 217 of file xhcihw.h.

◆ XHCI_PORTSC_SPEED_SHIFT

#define XHCI_PORTSC_SPEED_SHIFT   10

Definition at line 216 of file xhcihw.h.

◆ XHCI_PORTSC_TUNNELED

#define XHCI_PORTSC_TUNNELED   0x00000004

Definition at line 647 of file xhcihw.h.

◆ XHCI_PORTSC_WAKE_MASK

#define XHCI_PORTSC_WAKE_MASK   0x0E000000

Definition at line 230 of file xhcihw.h.

◆ XHCI_PORTSC_WAKE_SHIFT

#define XHCI_PORTSC_WAKE_SHIFT   25

Definition at line 229 of file xhcihw.h.

◆ XHCI_PORTSC_WPR

#define XHCI_PORTSC_WPR   0x80000000

Definition at line 232 of file xhcihw.h.

◆ XHCI_PORTSC_WRC

#define XHCI_PORTSC_WRC   0x00080000

Definition at line 223 of file xhcihw.h.

◆ XHCI_PROTOCOL_BLC

#define XHCI_PROTOCOL_BLC   0x00100000

Definition at line 293 of file xhcihw.h.

◆ XHCI_PROTOCOL_COUNT_MASK

#define XHCI_PROTOCOL_COUNT_MASK   0x0000FF00

Definition at line 289 of file xhcihw.h.

◆ XHCI_PROTOCOL_COUNT_SHIFT

#define XHCI_PROTOCOL_COUNT_SHIFT   8

Definition at line 288 of file xhcihw.h.

◆ XHCI_PROTOCOL_HLC

#define XHCI_PROTOCOL_HLC   0x00080000

Definition at line 292 of file xhcihw.h.

◆ XHCI_PROTOCOL_HSO

#define XHCI_PROTOCOL_HSO   0x00020000

Definition at line 290 of file xhcihw.h.

◆ XHCI_PROTOCOL_IHI

#define XHCI_PROTOCOL_IHI   0x00040000

Definition at line 291 of file xhcihw.h.

◆ XHCI_PROTOCOL_MAJOR_SHIFT

#define XHCI_PROTOCOL_MAJOR_SHIFT   24

Definition at line 284 of file xhcihw.h.

◆ XHCI_PROTOCOL_MHD_MASK

#define XHCI_PROTOCOL_MHD_MASK   0x0E000000

Definition at line 295 of file xhcihw.h.

◆ XHCI_PROTOCOL_MHD_SHIFT

#define XHCI_PROTOCOL_MHD_SHIFT   25

Definition at line 294 of file xhcihw.h.

◆ XHCI_PROTOCOL_MINOR_SHIFT

#define XHCI_PROTOCOL_MINOR_SHIFT   16

Definition at line 283 of file xhcihw.h.

◆ XHCI_PROTOCOL_NAME

#define XHCI_PROTOCOL_NAME   0x04

Definition at line 279 of file xhcihw.h.

◆ XHCI_PROTOCOL_NAME_USB

#define XHCI_PROTOCOL_NAME_USB   0x20425355

Definition at line 285 of file xhcihw.h.

◆ XHCI_PROTOCOL_OFFSET_MASK

#define XHCI_PROTOCOL_OFFSET_MASK   0x000000FF

Definition at line 287 of file xhcihw.h.

◆ XHCI_PROTOCOL_PORTS

#define XHCI_PROTOCOL_PORTS   0x08

Definition at line 280 of file xhcihw.h.

◆ XHCI_PROTOCOL_PSI

#define XHCI_PROTOCOL_PSI   0x10

Definition at line 281 of file xhcihw.h.

◆ XHCI_PROTOCOL_PSIC_SHIFT

#define XHCI_PROTOCOL_PSIC_SHIFT   28

Definition at line 296 of file xhcihw.h.

◆ XHCI_PROTOCOL_REVISION

#define XHCI_PROTOCOL_REVISION   0x00

Definition at line 278 of file xhcihw.h.

◆ XHCI_PSI_EXPONENT_MASK

#define XHCI_PSI_EXPONENT_MASK   0x00000030

Definition at line 301 of file xhcihw.h.

◆ XHCI_PSI_EXPONENT_SHIFT

#define XHCI_PSI_EXPONENT_SHIFT   4

Definition at line 300 of file xhcihw.h.

◆ XHCI_PSI_ID_MASK

#define XHCI_PSI_ID_MASK   0x0000000F

Definition at line 299 of file xhcihw.h.

◆ XHCI_PSI_MANTISSA_SHIFT

#define XHCI_PSI_MANTISSA_SHIFT   16

Definition at line 304 of file xhcihw.h.

◆ XHCI_PSI_TYPE_ASYMMETRIC_RX

#define XHCI_PSI_TYPE_ASYMMETRIC_RX   2

Definition at line 307 of file xhcihw.h.

◆ XHCI_PSI_TYPE_ASYMMETRIC_TX

#define XHCI_PSI_TYPE_ASYMMETRIC_TX   3

Definition at line 308 of file xhcihw.h.

◆ XHCI_PSI_TYPE_MASK

#define XHCI_PSI_TYPE_MASK   0x000000C0

Definition at line 303 of file xhcihw.h.

◆ XHCI_PSI_TYPE_SHIFT

#define XHCI_PSI_TYPE_SHIFT   6

Definition at line 302 of file xhcihw.h.

◆ XHCI_PSI_TYPE_SYMMETRIC

#define XHCI_PSI_TYPE_SYMMETRIC   0

Definition at line 306 of file xhcihw.h.

◆ XHCI_RT_MFINDEX

#define XHCI_RT_MFINDEX   0x00

Definition at line 418 of file xhcihw.h.

◆ XHCI_RUNTIME_INTERRUPTER_BASE

#define XHCI_RUNTIME_INTERRUPTER_BASE   0x20

Definition at line 151 of file xhcihw.h.

◆ XHCI_SCT_PRIMARY_RING

#define XHCI_SCT_PRIMARY_RING   1

Definition at line 613 of file xhcihw.h.

◆ XHCI_SLOT_STATE_ADDRESSED

#define XHCI_SLOT_STATE_ADDRESSED   2

Definition at line 492 of file xhcihw.h.

◆ XHCI_SLOT_STATE_CONFIGURED

#define XHCI_SLOT_STATE_CONFIGURED   3

Definition at line 493 of file xhcihw.h.

◆ XHCI_SLOT_STATE_DEFAULT

#define XHCI_SLOT_STATE_DEFAULT   1

Definition at line 491 of file xhcihw.h.

◆ XHCI_SLOT_STATE_DISABLED

#define XHCI_SLOT_STATE_DISABLED   0

Definition at line 490 of file xhcihw.h.

◆ XHCI_SPEED_FULL

#define XHCI_SPEED_FULL   1

Definition at line 241 of file xhcihw.h.

◆ XHCI_SPEED_HIGH

#define XHCI_SPEED_HIGH   3

Definition at line 243 of file xhcihw.h.

◆ XHCI_SPEED_LOW

#define XHCI_SPEED_LOW   2

Definition at line 242 of file xhcihw.h.

◆ XHCI_SPEED_SUPER

#define XHCI_SPEED_SUPER   4

Definition at line 244 of file xhcihw.h.

◆ XHCI_STREAM_EDTLA_MASK

#define XHCI_STREAM_EDTLA_MASK   0x00FFFFFF

Definition at line 606 of file xhcihw.h.

◆ XHCI_TRANSFER_EVENT_ED

#define XHCI_TRANSFER_EVENT_ED   0x00000004

Definition at line 321 of file xhcihw.h.

◆ XHCI_TRANSFER_EVENT_LENGTH_MASK

#define XHCI_TRANSFER_EVENT_LENGTH_MASK   0x00FFFFFF

Definition at line 635 of file xhcihw.h.

◆ XHCI_TRB_BEI

#define XHCI_TRB_BEI   0x00000200

Definition at line 638 of file xhcihw.h.

◆ XHCI_TRB_CHAIN

#define XHCI_TRB_CHAIN   0x00000010

Definition at line 609 of file xhcihw.h.

◆ XHCI_TRB_CODE_SHIFT

#define XHCI_TRB_CODE_SHIFT   24

Definition at line 28 of file xhcihw.h.

◆ XHCI_TRB_CYCLE

#define XHCI_TRB_CYCLE   0x00000001

Definition at line 22 of file xhcihw.h.

◆ XHCI_TRB_DIR_IN

#define XHCI_TRB_DIR_IN   0x00010000

Definition at line 626 of file xhcihw.h.

◆ XHCI_TRB_ENDPOINT_MASK

#define XHCI_TRB_ENDPOINT_MASK   0x001F0000

Definition at line 27 of file xhcihw.h.

◆ XHCI_TRB_ENDPOINT_SHIFT

#define XHCI_TRB_ENDPOINT_SHIFT   16

Definition at line 26 of file xhcihw.h.

◆ XHCI_TRB_ENT

#define XHCI_TRB_ENT   0x00000002

Definition at line 623 of file xhcihw.h.

◆ XHCI_TRB_IDT

#define XHCI_TRB_IDT   0x00000040

Definition at line 625 of file xhcihw.h.

◆ XHCI_TRB_INTERRUPTER_MASK

#define XHCI_TRB_INTERRUPTER_MASK   0x000003FF

Definition at line 611 of file xhcihw.h.

◆ XHCI_TRB_INTERRUPTER_SHIFT

#define XHCI_TRB_INTERRUPTER_SHIFT   22

Definition at line 610 of file xhcihw.h.

◆ XHCI_TRB_IOC

#define XHCI_TRB_IOC   0x00000020

Definition at line 624 of file xhcihw.h.

◆ XHCI_TRB_LENGTH_MASK

#define XHCI_TRB_LENGTH_MASK   0x0001FFFF

Definition at line 621 of file xhcihw.h.

◆ XHCI_TRB_SLOT_SHIFT

#define XHCI_TRB_SLOT_SHIFT   24

Definition at line 25 of file xhcihw.h.

◆ XHCI_TRB_TD_SIZE_SHIFT

#define XHCI_TRB_TD_SIZE_SHIFT   17

Definition at line 622 of file xhcihw.h.

◆ XHCI_TRB_TRT_IN

#define XHCI_TRB_TRT_IN   3

Definition at line 632 of file xhcihw.h.

◆ XHCI_TRB_TRT_NO_DATA

#define XHCI_TRB_TRT_NO_DATA   0

Definition at line 630 of file xhcihw.h.

◆ XHCI_TRB_TRT_OUT

#define XHCI_TRB_TRT_OUT   2

Definition at line 631 of file xhcihw.h.

◆ XHCI_TRB_TRT_SHIFT

#define XHCI_TRB_TRT_SHIFT   16

Definition at line 629 of file xhcihw.h.

◆ XHCI_TRB_TYPE_MASK

#define XHCI_TRB_TYPE_MASK   0x0000FC00

Definition at line 24 of file xhcihw.h.

◆ XHCI_TRB_TYPE_SHIFT

#define XHCI_TRB_TYPE_SHIFT   10

Definition at line 23 of file xhcihw.h.

◆ XHCI_USB4_CAP_PORTSC_TUNNEL_VALID

#define XHCI_USB4_CAP_PORTSC_TUNNEL_VALID   0x00010000

Definition at line 646 of file xhcihw.h.

◆ XHCI_USBCMD_CME

#define XHCI_USBCMD_CME   0x00002000

Definition at line 397 of file xhcihw.h.

◆ XHCI_USBCMD_CRS

#define XHCI_USBCMD_CRS   0x00000200

Definition at line 395 of file xhcihw.h.

◆ XHCI_USBCMD_CSS

#define XHCI_USBCMD_CSS   0x00000100

Definition at line 394 of file xhcihw.h.

◆ XHCI_USBCMD_ETE

#define XHCI_USBCMD_ETE   0x00004000

Definition at line 398 of file xhcihw.h.

◆ XHCI_USBCMD_EWE

#define XHCI_USBCMD_EWE   0x00000400

Definition at line 396 of file xhcihw.h.

◆ XHCI_USBCMD_HCRST

#define XHCI_USBCMD_HCRST   0x00000002

Definition at line 391 of file xhcihw.h.

◆ XHCI_USBCMD_HSEE

#define XHCI_USBCMD_HSEE   0x00000008

Definition at line 393 of file xhcihw.h.

◆ XHCI_USBCMD_INTE

#define XHCI_USBCMD_INTE   0x00000004

Definition at line 392 of file xhcihw.h.

◆ XHCI_USBCMD_RS

#define XHCI_USBCMD_RS   0x00000001

Definition at line 390 of file xhcihw.h.

◆ XHCI_USBSTS_CNR

#define XHCI_USBSTS_CNR   0x00000800

Definition at line 408 of file xhcihw.h.

◆ XHCI_USBSTS_EINT

#define XHCI_USBSTS_EINT   0x00000008

Definition at line 403 of file xhcihw.h.

◆ XHCI_USBSTS_HCE

#define XHCI_USBSTS_HCE   0x00001000

Definition at line 409 of file xhcihw.h.

◆ XHCI_USBSTS_HCH

#define XHCI_USBSTS_HCH   0x00000001

Definition at line 401 of file xhcihw.h.

◆ XHCI_USBSTS_HSE

#define XHCI_USBSTS_HSE   0x00000004

Definition at line 402 of file xhcihw.h.

◆ XHCI_USBSTS_PCD

#define XHCI_USBSTS_PCD   0x00000010

Definition at line 404 of file xhcihw.h.

◆ XHCI_USBSTS_RSS

#define XHCI_USBSTS_RSS   0x00000200

Definition at line 406 of file xhcihw.h.

◆ XHCI_USBSTS_SRE

#define XHCI_USBSTS_SRE   0x00000400

Definition at line 407 of file xhcihw.h.

◆ XHCI_USBSTS_SSS

#define XHCI_USBSTS_SSS   0x00000100

Definition at line 405 of file xhcihw.h.

◆ XHCI_VENDOR_PORT_TUNNEL_ACTIVE

#define XHCI_VENDOR_PORT_TUNNEL_ACTIVE   0x00000010

Definition at line 652 of file xhcihw.h.

◆ XHCI_VENDOR_PORT_TUNNEL_BASE

#define XHCI_VENDOR_PORT_TUNNEL_BASE   0x8AC4

Definition at line 650 of file xhcihw.h.

◆ XHCI_VENDOR_PORT_TUNNEL_STRIDE

#define XHCI_VENDOR_PORT_TUNNEL_STRIDE   0x20

Definition at line 651 of file xhcihw.h.

◆ XHCI_VENDOR_TUNNEL_STATUS

#define XHCI_VENDOR_TUNNEL_STATUS   0xCD20

Definition at line 653 of file xhcihw.h.

◆ XHCI_VENDOR_TUNNEL_STATUS_ACTIVE

#define XHCI_VENDOR_TUNNEL_STATUS_ACTIVE   0x00000001

Definition at line 654 of file xhcihw.h.

Typedef Documentation

◆ PXHCI_ENDPOINT_CONTEXT

◆ PXHCI_ENDPOINT_CONTEXT64

◆ PXHCI_ERST_ENTRY

◆ PXHCI_INPUT_CONTROL_CONTEXT

◆ PXHCI_INPUT_CONTROL_CONTEXT64

◆ PXHCI_SLOT_CONTEXT

◆ PXHCI_SLOT_CONTEXT64

◆ PXHCI_STREAM_CONTEXT

◆ PXHCI_TRB

◆ XHCI_ENDPOINT_CONTEXT

Endpoint Context (xHCI 6.2.3). TRDequeuePointer carries DCS in bit 0.

◆ XHCI_ENDPOINT_CONTEXT64

◆ XHCI_ERST_ENTRY

Event ring segment table entry (xHCI 6.5)

◆ XHCI_INPUT_CONTROL_CONTEXT

Input Control Context (xHCI 6.2.5.1). Bit n of either mask is DCI n, bit 0 the slot.

◆ XHCI_INPUT_CONTROL_CONTEXT64

◆ XHCI_SLOT_CONTEXT

Slot Context (xHCI 6.2.2)

◆ XHCI_SLOT_CONTEXT64

◆ XHCI_STREAM_CONTEXT

Stream Context (xHCI 6.2.4.1). Dword2 holds the Stopped EDTLA in bits 23:0.

◆ XHCI_TRB

Every TRB is 16 bytes. Dword 3 bit 0 is the cycle bit, bits 15:10 the type.

Enumeration Type Documentation

◆ XhciCompletionCode

Enumerator
Invalid 
Success 
DataBufferError 
BabbleDetected 
UsbTransactionError 
TrbError 
StallError 
ResourceError 
BandwidthError 
NoSlotsAvailable 
InvalidStreamType 
SlotNotEnabled 
EndpointNotEnabled 
ShortPacket 
RingUnderrun 
RingOverrun 
VfEventRingFull 
ParameterError 
BandwidthOverrun 
ContextStateError 
NoPingResponse 
EventRingFull 
IncompatibleDevice 
MissedService 
CommandRingStopped 
CommandAborted 
Stopped 
StoppedLengthInvalid 
StoppedShortPacket 
MaxExitLatencyTooLarge 
IsochBufferOverrun 
EventLost 
UndefinedError 
InvalidStreamId 
SecondaryBandwidthError 
SplitTransactionError 
VendorQuirk199 

Definition at line 109 of file xhcihw.h.

110{
111 Invalid = 0,
112 Success = 1,
113 DataBufferError = 2,
114 BabbleDetected = 3,
116 TrbError = 5,
117 StallError = 6,
118 ResourceError = 7,
119 BandwidthError = 8,
122 SlotNotEnabled = 11,
124 ShortPacket = 13,
125 RingUnderrun = 14,
126 RingOverrun = 15,
127 VfEventRingFull = 16,
128 ParameterError = 17,
129 BandwidthOverrun = 18,
131 NoPingResponse = 20,
132 EventRingFull = 21,
134 MissedService = 23,
136 CommandAborted = 25,
137 Stopped = 26,
142 EventLost = 32,
143 UndefinedError = 33,
144 InvalidStreamId = 34,
147 VendorQuirk199 = 199
148};

◆ XhciTrbType

Enumerator
Normal 
SetupStage 
DataStage 
StatusStage 
Isoch 
Link 
EventData 
NoOp 
EnableSlot 
DisableSlot 
AddressDevice 
ConfigureEndpoint 
EvaluateContext 
ResetEndpoint 
StopEndpoint 
SetTrDequeuePointer 
ResetDevice 
ForceEvent 
NegotiateBandwidth 
SetLatencyToleranceValue 
GetPortBandwidth 
ForceHeader 
NoOpCommand 
TransferEvent 
CommandCompletionEvent 
PortStatusChangeEvent 
BandwidthRequestEvent 
DoorbellEvent 
HostControllerEvent 
DeviceNotificationEvent 
MfindexWrapEvent 
VendorCommandCompletionEvent 
VendorFirmwareVersion 
VendorFirmwareVersionAlt 
VendorFirmwareVersionAltSetup 

Definition at line 67 of file xhcihw.h.

68{
69 Normal = 1,
70 SetupStage = 2,
71 DataStage = 3,
72 StatusStage = 4,
73 Isoch = 5,
74 Link = 6,
75 EventData = 7,
76 NoOp = 8,
77 EnableSlot = 9,
78 DisableSlot = 10,
79 AddressDevice = 11,
81 EvaluateContext = 13,
82 ResetEndpoint = 14,
83 StopEndpoint = 15,
85 ResetDevice = 17,
86 ForceEvent = 18,
90 ForceHeader = 22,
91 NoOpCommand = 23,
92 TransferEvent = 32,
96 DoorbellEvent = 36,
100
101 /* Vendor defined, used for firmware version queries */
106};
@ DeviceNotificationEvent
@ SetLatencyToleranceValue
@ VendorFirmwareVersionAlt
@ CommandCompletionEvent
@ VendorFirmwareVersionAltSetup
@ BandwidthRequestEvent
@ VendorFirmwareVersion
@ PortStatusChangeEvent
@ VendorCommandCompletionEvent

Function Documentation

◆ C_ASSERT() [1/9]

◆ C_ASSERT() [2/9]

◆ C_ASSERT() [3/9]

C_ASSERT ( sizeof(XHCI_ERST_ENTRY)  = =16)

◆ C_ASSERT() [4/9]

◆ C_ASSERT() [5/9]

◆ C_ASSERT() [6/9]

◆ C_ASSERT() [7/9]

◆ C_ASSERT() [8/9]

C_ASSERT ( sizeof(XHCI_STREAM_CONTEXT)  = =16)

◆ C_ASSERT() [9/9]

C_ASSERT ( sizeof(XHCI_TRB)  = =16)

◆ XhciTrbCompletionCode()

◆ XhciTrbPointer()

◆ XhciTrbSlotId()

◆ XhciTrbType()

Definition at line 33 of file xhcihw.h.

35{
36 return (Trb->Dword[3] & XHCI_TRB_TYPE_MASK) >> XHCI_TRB_TYPE_SHIFT;
37}
#define XHCI_TRB_TYPE_SHIFT
Definition: xhcihw.h:23
#define XHCI_TRB_TYPE_MASK
Definition: xhcihw.h:24