STRUCT XHCI_RUN_REGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct xhci_run_regs β€” okay so bestie, this is the struct for the Host Controller Runtime Registers πŸ’… and yes, this page is coming in with Kernel API Manual energy the whole way through, so buckle up πŸŽ€

Real talk though: the original NAME line is struct xhci_run_regs - with literally nothing after the dash. Not a typo, not me being lazy, that's just how it is. The description has the deets instead. πŸ™ˆ


✨ SYNOPSIS ✨

struct xhci_run_regs {
    __le32 microframe_index;
    __le32 rsvd[7];
    struct xhci_intr_reg    ir_set[1024];
 };

Look at her. Iconic. A little __le32 moment, a lil rsvd[7] for the reserved homies, and then ir_set[1024] just absolutely serving 1024 interrupt register sets like the main character she is πŸ‘‘


🫢 Members 🫢

  • microframe_index β€” this is MFINDEX, and it's holding the current microframe number. That's it. That's the whole documented member. The rsvd[7] and ir_set[1024] are out here living undocumented lives (the original page only spells out this one), so no cap, don't come for me for not inventing lore 😭

🌸 DESCRIPTION 🌸

Straight from Section 5.5 Host Controller Runtime Registers, and I'm quoting this exactly because the spec said what it said:

"Software should read and write these registers using only Dword (32 bit) or larger accesses"

Bestie. Read that again. Dword (32 bit) or larger accesses ONLY. No cute little byte-sized pokes, no nibbling on it with a u8. The spec was very clear and honestly a little scary about it πŸ’€ So keep your accesses thicc and aligned, iykyk.


πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/usb/host/xhci.h
  • struct xhci_cap_regs(9)
  • struct xhci_op_regs(9)
  • struct xhci_intr_reg(9)
  • struct xhci_container_ctx(9)
  • struct xhci_slot_ctx(9)
  • struct xhci_ep_ctx(9)
  • struct xhci_device_context_array(9)

Go read the whole xHCI friend group, they're all connected and honestly the lore is deep 🌈✨


πŸ’– that's the whole page bestie, slay πŸ’–

This one lives in ./drivers/usb/host, dated October 2026, and it's the struct xhci_run_regs(9) page from the Kernel API Manual β€” go off, microframe queen πŸ‘‘πŸ¦‹πŸ“

πŸ“¦ where this page comes from