STRUCT XHCI_EP_CTX(9)
okay so bestie, welcome to the Kernel API Manual β¨ β and todayβs main character is struct xhci_ep_ctx π
no cap. This is the endpoint context struct and weβre about to break it all the way down, so stay with me.
β¨ NAME β¨
struct xhci_ep_ctx β thatβs the name, periodt. The dash is just sitting there because thereβs no extra description, and honestly same.
π¦ SYNOPSIS π¦
struct xhci_ep_ctx {
__le32 ep_info;
__le32 ep_info2;
__le64 deq;
__le32 tx_info;
__le32 reserved[3];
};
π Members π
ep_infoβ this oneβs holding the endpoint state, streams, mult, and interval information. Like itβs the whole vibe check for the endpoint.ep_info2β hereβs where you get the info on endpoint type, max packet size, max burst size, error count, and whether the HC is gonna force an event for all transactions. So itβs giving all the details, fr fr.deqβ this is a 64-bit ring dequeue pointer address. If the endpoint only defines one stream, it points to the endpoint transfer ring. But if itβs not just one stream, it points to a stream context array, which has a ring pointer for each flow. Slay.tx_infoβ this bad boy has the average TRB lengths for the endpoint ring and the max payload within an Endpoint Service Interval Time (ESIT). Keep that acronym, bestie.
πΈ Description πΈ
so this is the Endpoint Context, and itβs literally section 6.2.1.2. The assumption here is that the HC is using 32-byte context structures β thatβs the default vibe. But if the HC is on that 64-byte context life, then thereβs an additional 32 bytes reserved at the end of the endpoint context for HC internal use. So keep that in mind, no cap.
This assumes the HC uses 32-byte context structures. If the HC uses 64-byte contexts, there is an additional 32 bytes reserved at the end of the endpoint context for HC internal use.
π SEE ALSO π
Kernel file: ./drivers/usb/host/xhci.h
struct xhci_cap_regs(9)β iconic.struct xhci_op_regs(9)β also iconic.struct xhci_intr_reg(9)β yup.struct xhci_run_regs(9)β you know it.struct xhci_container_ctx(9)β main character energy.struct xhci_slot_ctx(9)β slay.struct xhci_device_context_array(9)β periodt.
kisses and good vibes from ./drivers/usb/host, October 2026, and this has been struct xhci_ep_ctx(9) πβ¨π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms