xudc_dma_receive(9)
π xudc_dma_receive(9) β the Kernel API Manual tea ββ¨
okay so bestie, welcome to the Kernel API Manual entry for xudc_dma_receive(9) β yes the whole manual is literally named "Kernel API Manual" and this one page is your new hyperfixation. let's get into it π«Ά
β¨ NAME β¨
xudc_dma_receive β receives OUT data using DMA. that's it, that's the vibe. it pulls data in, DMA does the heavy lifting, we stan a low-effort queen π
πΈ SYNOPSIS πΈ
int xudc_dma_receive (struct xusb_ep *ep , struct xusb_req *req , u8
*buffer , u32 length );
yes the line break in the middle is real, it's giving "wrapped because terminal said no" π copy it exactly, don't @ me.
π ARGUMENTS π
epβ pointer to the usb device endpoint structure. like, the endpoint's whole personality lives here π₯reqβ pointer to the usb request structure. the request in question, the main character of this transaction πbufferβ pointer to storage buffer of received data. this is where the data actually lands, the cute little landing pad π¦lengthβ number of bytes to receive. how many bytes we're pulling in, fr fr β count them, bestie π
β RETURN β
0on success β slay, we ate π-EAGAINif no buffer is free β literally the "try again later babe" of error codes π- an error code on failure β when things go sideways, it tells you with a code, no guessing π
π DESCRIPTION π
this function receives data using DMA. that's the whole thing β it takes the data-in path and lets DMA handle the transfer instead of making the CPU do it by hand. iconic behaviour, no notes β¨
π§ SEE ALSO π§
first up, the source file itself: Kernel file ./drivers/usb/gadget/udc/udc-xilinx.c β go read her, she's the blueprint π
and literally all her friends (in order, because we're respectful like that):
struct xusb_req(9),struct xusb_ep(9),struct xusb_udc(9),xudc_write32(9),xudc_read32(9),xudc_write32_be(9)xudc_read32_be(9),xudc_wrstatus(9),xudc_epconfig(9),xudc_start_dma(9),xudc_dma_send(9),xudc_eptxrx(9)xudc_done(9),xudc_read_fifo(9),xudc_write_fifo(9),xudc_nuke(9),xudc_ep_set_halt(9)__xudc_ep_enable(9),xudc_ep_enable(9),xudc_ep_disable(9),xudc_ep_alloc_request(9),xudc_free_request(9)__xudc_ep0_queue(9),xudc_ep0_queue(9),xudc_ep_queue(9),xudc_ep_dequeue(9),xudc_ep0_enable(9),xudc_ep0_disable(9)xudc_get_frame(9),xudc_wakeup(9),xudc_pullup(9),xudc_eps_init(9),xudc_stop_activity(9)xudc_start(9),xudc_stop(9),xudc_clear_stall_all_ep(9),xudc_startup_handler(9),xudc_ep0_stall(9)xudc_setaddress(9),xudc_getstatus(9),xudc_set_clear_feature(9),xudc_handle_setup(9)xudc_ep0_out(9),xudc_ep0_in(9),xudc_ctrl_ep_handler(9),xudc_nonctrl_ep_handler(9)xudc_irq(9),xudc_probe(9),xudc_remove(9)
bestie that's the whole friend group, no cap. every single one of them is a (9) manpage and every single one is invited to the group chat ππ
and that's the page!! mwah π this lil entry lives over in ./drivers/usb/gadget/udc and it's dated October 2026 β so yeah, mark your calendar, screenshot it, put it on the fridge πβ¨ xoxo, your kernel bestie π¦
π¦ 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