handle_ep(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– handle_ep(9) πŸ’–

okay so bestie, welcome to the handle_ep(9) page from the Kernel API Manual. it's short, it's iconic, and it's doing real endpoint work, so let's get into it πŸ’…

🌸 NAME 🌸

handle_ep β€” Handle endpoint data tranfers. (yes, "tranfers" is the original spelling and we are keeping it, it's part of the lore πŸ’€)

✨ SYNOPSIS ✨

void handle_ep (struct pxa_ep *ep );

πŸŽ€ ARGUMENTS πŸŽ€

  • ep β€” the pxa physical endpoint. that's the endpoint you're handling, your main character for this function 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so handle_ep tries to transfer all pending request data into the endpoint and/or transfer all pending data in the endpoint into usb requests. it's giving "move the pending stuff both ways" and honestly? we love that for it ✨

this is always called from the interrupt handler. periodt.

🚨 do not hold ep->lock when you call this. the manual says ep->lock must not be held, and we respect the lock rules in this house πŸ’…

πŸ‘‘ SEE ALSO πŸ‘‘

if you want the whole friend group, it's all here, no omissions, fr fr: Kernel file ./drivers/usb/gadget/udc/pxa27x_udc.c β€” 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), 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), 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).


mwah πŸ’‹ this page lives under ./drivers/usb/gadget/udc and it's stamped October 2026. go handle those endpoints, bestie β€” no cap, you've got this 🫢🌈

πŸ“¦ where this page comes from