STRUCT XHCI_DEVICE_CONTEXT_ARRAY(9)
π struct xhci_device_context_array(9) π
okay bestie, welcome to the Kernel API Manual β yes, that's the manual name, and yes, we're reading a struct page together, this is our bonding time π«Ά
β¨ NAME β¨
struct xhci_device_context_array β no description line, it just is. main character energy, honestly π
πΈ SYNOPSIS πΈ
struct xhci_device_context_array {
__le64 *ctx_array;
dma_addr_t dma;
};
two members. that's it. that's the whole vibe check and it passed β¨
π Members π
ctx_arrayβ a pointer to an array of addresses, and the size of that array is not a fixed thing, it depends on Max Slots read fromHCSPARAMS1. so like, it scales. we love a flexible icon π¦dmaβ the DMA address that points atctx_array. literally just the DMA address toctx_array, no cap π«
π Description π
This is the Device Context Base Address Array (DCBAA) β straight out of Section 6.1. very official. very cunty. here's the breakdown of the indexing, because the indices are doing different jobs and you will need to know which is which π₯
ctx_array[0]β Scratchpad Buffer Array Base Addressctx_array[1-MaxSlots]β Device Context Base Address
so slot zero is the scratchpad, and slots one through MaxSlots are the actual device context base addresses. that's the whole map, iykyk πΊοΈπ
π SEE ALSO π
Kernel file ./drivers/usb/host/xhci.h β go read it, it's giving lore
struct xhci_cap_regs(9)struct xhci_op_regs(9)struct xhci_intr_reg(9)struct xhci_run_regs(9)struct xhci_container_ctx(9)struct xhci_slot_ctx(9)struct xhci_ep_ctx(9)
a whole friend group of structs, honestly. collect them all πβ¨
and that's the page bestie!! it lives in ./drivers/usb/host, and this particular edition is dated October 2026 π go forth and read your xHCI structs, you're gonna slay ππ
π¦ 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