Expand description
xHCI (eXtensible Host Controller Interface) USB 3.x driver
Implements PCI discovery, MMIO register access, Transfer Ring Buffers (TRBs), Command/Event/Transfer rings, device slot management, port handling, USB descriptor parsing, and MSI-X interrupt stubs for xHCI controllers.
xHCI PCI identification: class 0x0C, subclass 0x03, prog-if 0x30.
Structs§
- Command
Ring - Command Ring: the host controller dequeues command TRBs from here
- Device
Slot - Per-device-slot tracking information
- Event
Ring - Event Ring: the host controller enqueues event TRBs here
- Event
Ring Segment Table Entry - Event Ring Segment Table Entry (xHCI spec 6.5)
- Msix
Capability - MSI-X capability structure offsets (within PCI config space)
- Msix
Table Entry - MSI-X table entry (16 bytes per entry)
- Ring
State - Producer/consumer cycle state for ring buffers
- Transfer
Ring - Transfer Ring: per-endpoint ring for bulk/interrupt/control data transfers
- Trb
- Generic 16-byte Transfer Request Block
- Xhci
Capabilities - xHCI controller capabilities parsed from Capability Registers
- Xhci
Config Descriptor - Parsed USB Configuration Descriptor header (9 bytes)
- Xhci
Controller - State of the xHCI controller
- Xhci
Device Descriptor - Parsed USB Device Descriptor (18 bytes)
- Xhci
Endpoint Descriptor - Parsed USB Endpoint Descriptor (7 bytes)
- Xhci
Interface Descriptor - Parsed USB Interface Descriptor (9 bytes)
- Xhci
PciDevice - Information about a discovered xHCI PCI device
- Xhci
Port - xHCI port information
Enums§
- Endpoint
Transfer Type - Endpoint transfer type
- Port
Speed - Port speed as reported by xHCI PORTSC
- Setup
Transfer Type - Transfer type for Setup Stage TRB (control DWORD bits 17:16)
- Slot
State - State of a device slot
Functions§
- configure_
msix - Configure MSI-X for the xHCI controller.
- controller_
count - Get the number of discovered xHCI controllers
- find_
xhci_ controllers - Scan the PCI bus for xHCI controllers and return their BAR0 addresses.
- init
- Initialize the xHCI subsystem.
- is_
initialized - Check if the xHCI subsystem has been initialized
- is_
xhci_ device - Check if a PCI device is an xHCI controller
- msix_
interrupt_ handler - MSI-X interrupt handler stub.
- parse_
configuration_ descriptors - Parse all descriptors from a full configuration descriptor buffer.
Type Aliases§
- Interface
With Endpoints - A parsed interface paired with its endpoint descriptors.