ep_add_request(9)
π 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:
- it queues the request in the endpoint's queue π₯
- 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
- 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