STRUCT MUSB_IO(9)
β¨ struct musb_io(9) β¨
okay so bestie, this is a page from the Kernel API Manual β it's all about struct musb_io, which is literally the IO functions for MUSB π¦ like, the little bundle of function pointers that lets MUSB talk to whatever platform it happens to be sitting on?? iconic behaviour honestly.
πΈ NAME πΈ
struct musb_io β IO functions for MUSB π
π SYNOPSIS π
here's the whole vibe, no cap, copied exactly:
struct musb_io {
u32 (*ep_offset)(u8 epnum, u16 offset);
void (*ep_select)(void __iomem *mbase, u8 epnum);
u32 (*fifo_offset)(u8 epnum);
void (*read_fifo)(struct musb_hw_ep *hw_ep, u16 len, u8 *buf);
void (*write_fifo)(struct musb_hw_ep *hw_ep, u16 len, const u8 *buf);
u32 (*busctl_offset)(u8 epnum, u16 offset);
u16 (*get_toggle)(struct musb_qh *qh, int is_out);
u16 (*set_toggle)(struct musb_qh *qh, int is_out, struct urb *urb);
};
π Members π
so each one of these is a function pointer, and every single one of them is platform specific β meaning the platform fills it in, not you, bestie π here's the full roster:
ep_offsetβ platform specific function to get end point offset βep_selectβ platform specific function to select end point π―fifo_offsetβ platform specific function to get fifo offset πread_fifoβ platform specific function to read fifo πwrite_fifoβ platform specific function to write fifo βοΈbusctl_offsetβ platform specific function to get busctl offset πget_toggleβ platform specific function to get toggle πset_toggleβ platform specific function to set toggle β
that's all eight of them, we did not skip a single one, periodt π
π₯ SEE ALSO π₯
- Kernel file
./drivers/usb/musb/musb_io.hβ go read it, iykyk π
and that's the whole page, bestie!! π«Ά this one lives under ./drivers/usb/musb and it's dated October 2026 β so yeah, future vibes only π mwah πβ¨
π¦ 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