ep_add_request(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ ep_add_request(9) πŸŽ€

okay so this is a page from the Kernel API Manual, and it's all about ep_add_request β€” the little function that gets a request onto an endpoint's queue. it's short, it's sweet, it's giving "small but crucial" energy πŸ’…


✨ NAME ✨

ep_add_request β€” add a request to the endpoint's queue πŸ¦‹


✨ SYNOPSIS ✨

void ep_add_request (struct pxa_ep *ep , struct pxa27x_request *req );

like, that's literally the whole signature bestie. void, no return value, nothing to check on the way out πŸ‘‘


✨ ARGUMENTS ✨

  • ep β€” usb endpoint 🌸
  • req β€” usb request ⭐

two arguments, both structs, both important. no notes πŸ’œ


✨ CONTEXT ✨

ep->lock held πŸ”’

this is not a "call it whenever, wherever" situation, okay?? the endpoint's lock is already held when this runs β€” that's the contract, don't fumble it 😭


✨ DESCRIPTION ✨

so what does it actually do? two things, and they're both kinda the main character move here:

  1. it queues the request in the endpoint's queue πŸ“₯
  2. it enables the interrupts on the endpoint ⚑

that's it. that's the whole function. lowkey iconic for how much it gets done in so few lines 🫢


✨ SEE ALSO ✨

fr fr this is the biggest part of the page β€” the source lives in the kernel file ./drivers/usb/gadget/udc/pxa27x_udc.c, and basically the entire neighborhood shows up in here. brace yourself, bestie πŸ’€

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_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), 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)

yeah. all of them. every single one. no cap 🌈✨


and that's the page!! πŸŽ€ source path is ./drivers/usb/gadget/udc and the date stamp says October 2026 β€” so like, mark your calendars bestie, this one's dated πŸ’– bye!! πŸ¦‹

πŸ“¦ where this page comes from