xudc_dma_send(9)
β¨ xudc_dma_send(9) β the DMA send function that's lowkey iconic β¨
Okay bestie, gather round, because we're about to deep-dive into xudc_dma_send(9) from the Kernel API Manual (section 9, obvi). This is the function that does one thing and does it slay: sending IN data using DMA. No cap. Let's get into it π
π NAME
xudc_dma_send β Sends IN data using DMA.
π§Ύ SYNOPSIS
int xudc_dma_send (struct xusb_ep *ep , struct xusb_req *req , u8
*buffer , u32 length );
π ARGUMENTS
epβ pointer to theusbdevice endpoint structure. It's giving "who am I sending this through" energy.reqβ pointer to theusbrequest structure. The request in question. The main character of the operation, fr fr.bufferβ pointer to data to be sent. This is the actual payload, the tea being delivered βlengthβ number of bytes to send. How many, exactly? This many. Periodt.
π RETURN
Returns 0 on success (slay π), -EAGAIN if no buffer is free (the worst, honestly π), and an error code on failure (big yikes, handle it).
π¦ DESCRIPTION
This function sends data using DMA. That's it. That's the whole vibe. It's not complicated, it's not doing too much, it's just sending that data directly via DMA and minding its business. Iconic behavior, tbh.
π SEE ALSO
Okay so there's a whole squad of related functions and structs, and you already know we're listing every single one because we don't do incomplete here. Check the kernel file ./drivers/usb/gadget/udc/udc-xilinx.c and these besties:
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_receive(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)
That's the whole friend group. Go say hi π«Ά
Sending you off with a vibe check from the October 2026 drop of the xudc_dma_send(9) manual, straight outta ./drivers/usb/gadget/udc. Stay slay, 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