xhci_sideban..._interrupter(9)
π NAME
xhci_sideband_create_interrupter β bestie, this one literally creates a brand-new interrupter for this sideband β¨
So basically: this is a page from the Kernel API Manual (that's the manual name, we're folding it in right here π) and it's all about spinning up an interrupter. Let's go π
πΈ SYNOPSIS
int xhci_sideband_create_interrupter (struct xhci_sideband *sb , int
num_seg , bool ip_autoclear , u32 imod_interval , int intr_num );
Yeah it's a chunky signature, but she's iconic π
π¦ ARGUMENTS
sbβ the sideband instance for this usb device. That's the whole context, no cap π«num_segβ how many event ring segments you want allocated. Like, actual segments, an int, pick a number π€ip_autoclearβ IP autoclearing support such as MSI implemented. It's abool, so true/false energy πimod_intervalβ ngl, the original page literally just says-- undescribed --here π so that's genuinely all the info we have. It's au32. Respect the mystery πintr_numβ also-- undescribed --π anint, and that's the whole vibe check on this one.
Not me being fully honest with you:imod_intervalandintr_numare undescribed in the source. I'm not gonna invent lore for them, periodt π
β DESCRIPTION
Okay so what this does: it sets up an xhci interrupter that can be used for this sideband accessed usb device π«Ά
And here's the slay part β transfer events for this device can be routed to this interrupter's event ring by setting the 'Interrupter Target' field correctly when queueing the transfer TRBs. Like, correctly correctly. That field is the whole assignment, don't fumble it π₯
Once this interrupter is created, the interrupter target ID can be obtained by calling xhci_sideband_interrupter_id. That's your lookup, bestie, that's where the ID lives π
Returns 0 on success, negative error otherwise. Zero means she ate. Negative means something went sideways π
π§ SEE ALSO
Kernel file ./drivers/usb/host/xhci-sideband.c β the mothership, the source of truth π
xhci_sideband_notify_ep_ring_free(9)xhci_sideband_add_endpoint(9)xhci_sideband_remove_endpoint(9)xhci_sideband_get_endpoint_buffer(9)xhci_sideband_get_event_buffer(9)xhci_sideband_check(9)xhci_sideband_remove_interrupter(9)xhci_sideband_interrupter_id(9)xhci_sideband_register(9)xhci_sideband_unregister(9)
That's the whole friend group π«Ά go read them too, iykyk π
β¨ that's the page, bestie β¨ this little gem lives down in ./drivers/usb/host, dated October 2026, and yes the page be calling herself xhci_sideban..._interrupter(9) because the name got truncated and honestly? relatable ππ bye bestie, go create an interrupter π
π¦ 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