read_ep0_fifo(9)
π read_ep0_fifo(9) β Kernel API Manual, bestie edition π
okay so picture this: it's the Kernel API Manual, and we're about to talk about read_ep0_fifo. yes that's the whole page title and honestly? iconic. let's get into it β¨
πΈ NAME πΈ
read_ep0_fifo β literally here to transfer packets from the control endpoint into the usb request. that's the job. that's the whole vibe. π
π¦ SYNOPSIS π¦
int read_ep0_fifo (struct pxa_ep *ep , struct pxa27x_request *req );
look at her go. two args, one int return, no notes. π«Ά
β¨ ARGUMENTS β¨
epβ the control endpoint, aka the main character of this whole operation πreqβ the pxa usb request, where all the bytes are gonna end up π
π DESCRIPTION π
okay so this is the special ep0 version of the above read_fifo β like, the limited-edition drop, iykyk. π
what it does: reads as many bytes from the control endpoint as can be read, and stores them into the usb request. and yes, it's limited by the request maximum length β so it's not just gonna keep going forever, it has boundaries, we love a function with boundaries. π
Return value time, because this one's a little funky:
- returns
0if the usb request is only partially filled - returns
1if it's fully filled
that's it. that's the whole bit. lowkey elegant ngl π¦
β SEE ALSO β
okay bestie, this is a long list, so buckle up β we're going to the function-adjacent. everything here lives in the kernel file ./drivers/usb/gadget/udc/pxa27x_udc.c, and honestly the way this file has this many functions is giving "wrote one file and said periodt". π₯
is_match_usb_pxa(9)find_pxa_ep(9)update_pxa_ep_matches(9)pio_irq_enable(9)pio_irq_disable(9)udc_set_mask_UDCCR(9)udc_clear_mask_UDCCR(9)ep_write_UDCCSR(9)ep_count_bytes_remain(9)ep_is_empty(9)ep_is_full(9)epout_has_pkt(9)set_ep0state(9)ep0_idle(9)inc_ep_stats_reqs(9)inc_ep_stats_bytes(9)pxa_ep_setup(9)pxa_eps_setup(9)pxa_ep_alloc_request(9)pxa_ep_free_request(9)ep_add_request(9)ep_del_request(9)req_done(9)ep_end_out_req(9)ep0_end_out_req(9)ep_end_in_req(9)ep0_end_in_req(9)nuke(9)read_packet(9)write_packet(9)read_fifo(9)write_fifo(9)write_ep0_fifo(9)pxa_ep_queue(9)pxa_ep_dequeue(9)pxa_ep_set_halt(9)pxa_ep_fifo_status(9)pxa_ep_fifo_flush(9)pxa_ep_enable(9)pxa_ep_disable(9)dplus_pullup(9)pxa_udc_get_frame(9)pxa_udc_wakeup(9)should_enable_udc(9)should_disable_udc(9)pxa_udc_pullup(9)pxa_udc_vbus_session(9)pxa_udc_vbus_draw(9)pxa_udc_phy_event(9)udc_disable(9)udc_init_data(9)udc_enable(9)pxa27x_udc_start(9)stop_activity(9)pxa27x_udc_stop(9)handle_ep0_ctrl_req(9)handle_ep0(9)handle_ep(9)pxa27x_change_configuration(9)pxa27x_change_interface(9)irq_udc_suspend(9)irq_udc_resume(9)irq_udc_reconfig(9)irq_udc_reset(9)pxa_udc_irq(9)pxa_udc_probe(9)pxa_udc_remove(9)pxa_udc_suspend(9)pxa_udc_resume(9)
likeβ¦ 70-something friends. she's social. π β¨
and that's the page!! π«Ά this lil baddie lives in ./drivers/usb/gadget/udc, and the version stamp on this whole thing is October 2026 β so jot that down, screenshot it, frame it, whatever feels right. bye bestie, go read some fifos πππΈ
π¦ 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