read_fifo(9)
π read_fifo(9) β Kernel API Manual, but make it make sense π«Ά
okay bestie, so this is read_fifo, a kernel API manual page (9 is the kernel section, iykyk), and it's genuinely so good at what it does. sit down, hydrate, let's go β¨
πΈ NAME πΈ
read_fifo β Transfer packets from OUT endpoint into usb request π
(like, it's giving "move the packets out of the fifo and into the request", and that's the whole vibe fr fr)
π¦ SYNOPSIS π¦
int read_fifo (struct pxa_ep *ep , struct pxa27x_request *req );
π ARGUMENTS π
epβ pxa physical endpoint. she's the β¨physicalβ¨ one, not the logical one, okay πreqβ usb request. this is the little container the packets are gonna live in afterward π
π₯ CONTEXT π₯
interrupt handler π«Ά β yes, you're in interrupt context, not me being dramatic for once. keep it snappy, bestie.
β DESCRIPTION β
okay so the whole point: unload as many packets as possible from the fifo we use for usb OUT transfers and put them into the request π that's it, that's the function. she's a mover, an icon, a packet relocation specialist.
the caller should have made sure there's at least one packet ready β like, that's on you, not on her π so do your little vibe check before calling, mmkay?
β οΈ also important: it doesn't complete the request, that's the caller's job. do not expect her to finish that for you, she will not, no cap π
and the return values, because we love a clear answer:
- returns
1if the request completed β - returns
0otherwise π«₯
periodt.
π SEE ALSO π
the kernel file is ./drivers/usb/gadget/udc/pxa27x_udc.c and honestly the whole friend group lives there together. here's everyone, no one left out, we don't do that π
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)write_fifo(9)read_ep0_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)
and that's the page, bestie π§ source is ./drivers/usb/gadget/udc, dated October 2026, section read_fifo(9) β mwah, go read the fifo, slay π
π
π¦ 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