iudma_read(9)
πΈ iudma_read β the Kernel API Manual page, bestie edition πΈ
okay so this is a page from the Kernel API Manual (iudma_read(9), section 9, the whole vibe) and honestly? it's short, it's sweet, it's giving "small function, big feelings" β¨ let's get into it π«Ά
β¨ NAME β¨
iudma_read β check for IUDMA buffer completion π like, is the DMA channel done yet or not, that's the whole assignment
π¦ SYNOPSIS π¦
int iudma_read (struct bcm63xx_udc *udc , struct iudma_ch *iudma );
that's it. that's the signature. she's small and she returns an int π
π ARGUMENTS π
udcβ your reference to the device controller π this is the big boss object, the one that owns everything elseiudmaβ the IUDMA channel you're working with π¦ the specific lane we're checking on, iykyk
β DESCRIPTION β
so here's the tea β this function checks whether ALL of the outstanding BDs on the DMA channel have been filled π like, every single one, no halfsies, no "ehh close enough"
if they have? slay π it returns the actual transfer length π₯ the real number, the good number
if they haven't? it returns -EBUSY π which is the kernel's way of saying "girl not yet, come back later"
lowkey important: it's ALL of them or nothing, fr fr β partial completion does not get you a length, it gets you -EBUSY π
π SEE ALSO π
okay this is the part where the whole friend group shows up π first, the file she lives in:
Kernel file ./drivers/usb/gadget/udc/bcm63xx_udc.c
and now the full crew, every single one, no cap π«Ά
struct iudma_ch_cfg(9)struct iudma_ch(9)struct bcm63xx_ep(9)struct bcm63xx_req(9)struct bcm63xx_udc(9)bcm63xx_ep_dma_select(9)bcm63xx_set_stall(9)bcm63xx_fifo_setup(9)bcm63xx_fifo_reset_ep(9)bcm63xx_fifo_reset(9)bcm63xx_ep_init(9)bcm63xx_ep_setup(9)iudma_write(9)iudma_reset_channel(9)iudma_init_channel(9)iudma_init(9)iudma_uninit(9)bcm63xx_set_ctrl_irqs(9)bcm63xx_select_phy_mode(9)bcm63xx_select_pullup(9)bcm63xx_uninit_udc_hw(9)bcm63xx_init_udc_hw(9)bcm63xx_ep_enable(9)bcm63xx_ep_disable(9)bcm63xx_udc_alloc_request(9)bcm63xx_udc_free_request(9)bcm63xx_udc_queue(9)bcm63xx_udc_dequeue(9)bcm63xx_udc_set_halt(9)bcm63xx_udc_set_wedge(9)bcm63xx_ep0_setup_callback(9)bcm63xx_ep0_spoof_set_cfg(9)bcm63xx_ep0_spoof_set_iface(9)bcm63xx_ep0_map_write(9)bcm63xx_ep0_complete(9)bcm63xx_ep0_nuke_reply(9)bcm63xx_ep0_read_complete(9)bcm63xx_ep0_internal_request(9)bcm63xx_ep0_do_setup(9)bcm63xx_ep0_do_idle(9)bcm63xx_ep0_one_round(9)bcm63xx_ep0_process(9)bcm63xx_udc_get_frame(9)bcm63xx_udc_pullup(9)bcm63xx_udc_start(9)bcm63xx_udc_stop(9)bcm63xx_update_cfg_iface(9)bcm63xx_update_link_speed(9)bcm63xx_update_wedge(9)bcm63xx_udc_ctrl_isr(9)bcm63xx_udc_data_isr(9)bcm63xx_udc_init_debugfs(9)bcm63xx_udc_cleanup_debugfs(9)bcm63xx_udc_probe(9)bcm63xx_udc_remove(9)
like I said. the whole group chat ππ
that's the page!! short king behavior honestly π this little cutie comes to you from ./drivers/usb/gadget/udc, dated October 2026, and it's filed under iudma_read(9) β go read the others too bestie, they're all in the SEE ALSO, 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