xudc_eptxrx(9)
πΈ xudc_eptxrx β the bestie that moves your USB data π
Okay so real talk, bestie, welcome to the Kernel API Manual glow-up of xudc_eptxrx(9). This is the function that's literally the main character of endpoint data movement, no cap. Let's get into it. β¨
π NAME π
xudc_eptxrx β Transmits or receives data to or from an endpoint.
Like, it's giving "the mail carrier of your USB gadget stack," fr fr. It handles the send OR the receive, depending on the vibe. π¦
π SYNOPSIS π
Not me just dropping the signature exactly as-is because we do NOT mess with the code, periodt:
int xudc_eptxrx (struct xusb_ep *ep , struct xusb_req *req , u8
*bufferptr , u32 bufferlen );
β¨ ARGUMENTS β¨
epβ pointer to the usb endpoint configuration structure. Like, it's the map of where everything goes, structured asstruct xusb_ep.reqβ pointer to the usb request structure. This is yourstruct xusb_reqmoment, the request bestie that carries the context.bufferptrβ pointer to buffer containing the data to be sent. Your actual payload lives here, iykyk.bufferlenβ The number of data bytes to be sent. The length, the size, the amount of byte-y goodness. π₯
π RETURN π
0on success β slay, it worked. π-EAGAINif no buffer is free β that's the "try again later, bestie" energy. It's literally the function saying "no buffer availability rn, come back." π
π DESCRIPTION π
So here's the tea: this function copies the transmit/receive data to/from the end point buffer and enables the buffer for transmission/reception.
Literally it's doing two iconic things:
- Copying the data β moving your transmit or receive data to or from the endpoint buffer. π
- Enabling the buffer β flipping the switch so the buffer is ready for transmission or reception. It's giving main character energy. π
That's it, that's the whole vibe. No extra lore, no made-up features. Just pure, factual, buffer-enabled excellence. πΈ
π«Ά SEE ALSO π«Ά
Okay bestie, this is the friend group. Every single one of these is in the kernel file ./drivers/usb/gadget/udc/udc-xilinx.c and they're all part of the same squad. Don't skip any, there's a lot but we're listing them ALL because we don't do half-finished lists here. π
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_dma_receive(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)
Okay and like, just so you have the full context, bestie: this whole thing lives under ./drivers/usb/gadget/udc and the manual page is dated October 2026. That's the source and version info, and I'm mentioning it here in this cute little sign-off instead of copying the footer line verbatim because we're extra like that. πβ¨
Stay slay, keep your buffers free, and may your endpoints always transmit. π¦π π
π¦ 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