process_zlp(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… process_zlp(9) β€” the process_zlp glow-up πŸŽ€

okay bestie, welcome to the Kernel API Manual ✨ you're literally reading the page for process_zlp, and yes we're gonna get you through it. pull up a chair, hydrate, and let's go πŸ’–


🌸 NAME 🌸

process_zlp β€” the function that handles zero length packets coming from the gadget driver. that's it. that's the whole vibe. zero length, maximum importance 🫢


⭐ SYNOPSIS ⭐

void process_zlp (struct pch_udc_ep *ep , struct pch_udc_request *req );

look at that signature. she's short, she's void, she returns nothing and still does the most πŸ˜­πŸ‘‘


πŸ¦‹ ARGUMENTS πŸ¦‹

  • ep β€” a reference to the endpoint structure. the endpoint in question. the main character of this particular packet situation πŸ‘‘
  • req β€” a reference to the request. the request riding along with it. they're a package deal fr fr πŸŽ€
two args, both pointers, both just references. no cap, no copies, no drama ✨

🌈 SEE ALSO 🌈

the lore is deep, bestie β€” this page lives in the kernel file ./drivers/usb/gadget/udc/pch_udc.c, and there are so many friends in this family. every single one of them, right here, no skipping 🫢

struct pch_udc_data_dma_desc(9), struct pch_udc_stp_dma_desc(9), struct
pch_udc_cfg_data(9), struct pch_udc_ep(9), struct pch_vbus_gpio_data(9),
struct pch_udc_dev(9), struct pch_udc_request(9), pch_udc_csr_busy(9),
pch_udc_write_csr(9), pch_udc_read_csr(9), pch_udc_rmt_wakeup(9),
pch_udc_get_frame(9), pch_udc_clear_selfpowered(9),
pch_udc_set_selfpowered(9), pch_udc_set_disconnect(9),
pch_udc_clear_disconnect(9), pch_udc_reconnect(9),
pch_udc_vbus_session(9), pch_udc_ep_set_stall(9),
pch_udc_ep_clear_stall(9), pch_udc_ep_set_trfr_type(9),
pch_udc_ep_set_bufsz(9), pch_udc_ep_set_maxpkt(9),
pch_udc_ep_set_subptr(9), pch_udc_ep_set_ddptr(9), pch_udc_ep_set_pd(9),
pch_udc_ep_set_rrdy(9), pch_udc_ep_clear_rrdy(9), pch_udc_set_dma(9),
pch_udc_clear_dma(9), pch_udc_set_csr_done(9),
pch_udc_disable_interrupts(9), pch_udc_enable_interrupts(9),
pch_udc_disable_ep_interrupts(9), pch_udc_enable_ep_interrupts(9),
pch_udc_read_device_interrupts(9), pch_udc_write_device_interrupts(9),
pch_udc_read_ep_interrupts(9), pch_udc_write_ep_interrupts(9),
pch_udc_read_device_status(9), pch_udc_read_ep_control(9),
pch_udc_clear_ep_control(9), pch_udc_read_ep_status(9),
pch_udc_clear_ep_status(9), pch_udc_ep_set_nak(9),
pch_udc_ep_clear_nak(9), pch_udc_ep_fifo_flush(9), pch_udc_ep_enable(9),
pch_udc_ep_disable(9), pch_udc_wait_ep_stall(9), pch_udc_init(9),
pch_udc_exit(9), pch_udc_pcd_get_frame(9), pch_udc_pcd_wakeup(9),
pch_udc_pcd_selfpowered(9), pch_udc_pcd_pullup(9),
pch_udc_pcd_vbus_session(9), pch_udc_pcd_vbus_draw(9),
pch_vbus_gpio_get_value(9), pch_vbus_gpio_work_fall(9),
pch_vbus_gpio_work_rise(9), pch_vbus_gpio_irq(9), pch_vbus_gpio_init(9),
pch_vbus_gpio_free(9), complete_req(9), empty_req_queue(9),
pch_udc_free_dma_chain(9), pch_udc_create_dma_chain(9), prepare_dma(9),
pch_udc_start_rxrequest(9), pch_udc_pcd_ep_enable(9),
pch_udc_pcd_ep_disable(9), pch_udc_alloc_request(9),
pch_udc_free_request(9), pch_udc_pcd_queue(9), pch_udc_pcd_dequeue(9),
pch_udc_pcd_set_halt(9), pch_udc_pcd_set_wedge(9),
pch_udc_pcd_fifo_flush(9), pch_udc_init_setup_buff(9),
pch_udc_start_next_txrequest(9), pch_udc_complete_transfer(9),
pch_udc_complete_receiver(9), pch_udc_svc_data_in(9),
pch_udc_svc_data_out(9), pch_udc_svc_control_in(9),
pch_udc_svc_control_out(9), pch_udc_postsvc_epinters(9),
pch_udc_read_all_epstatus(9), pch_udc_activate_control_ep(9),
pch_udc_svc_ur_interrupt(9), pch_udc_svc_enum_interrupt(9),
pch_udc_svc_intf_interrupt(9), pch_udc_svc_cfg_interrupt(9),
pch_udc_dev_isr(9), pch_udc_isr(9), pch_udc_setup_ep0(9),
pch_udc_pcd_reinit(9), pch_udc_pcd_init(9), init_dma_pools(9)

like… that's a whole friend group πŸ”₯ go read all of them, iykyk πŸ’œ


and that's the page, bestie!! this little icon comes to you from ./drivers/usb/gadget/udc, dated October 2026 πŸ—“οΈβœ¨ mwah, stay hydrated, and may all your packets be exactly the length you expect πŸ’–πŸ¦‹πŸ’…

πŸ“¦ where this page comes from