STRUCT BCM63XX_REQ(9)
π struct bcm63xx_req(9) β Kernel API Manual
okay so this is the kernel API manual page for struct bcm63xx_req. yes bestie, it's a struct page, we're in kernel-doc territory now π«Ά
β¨ NAME β¨
struct bcm63xx_req β the internal (driver-level) state of a single request. like, one (1) whole request, and everything the driver needs to remember about it π
πΈ SYNOPSIS πΈ
struct bcm63xx_req {
struct list_head queue;
struct usb_request req;
unsigned int offset;
unsigned int bd_bytes;
struct iudma_ch *iudma;
};
π Members π
okay let's meet the cast, main character energy only:
queueβ links back to the EP's request list. it's the little thread that keeps this request tied to its endpoint's fam π§΅reqβ the USB gadget layer's representation of the request. the glow-up version the gadget side actually sees β¨offsetβ the current byte offset into the data buffer, i.e. the next byte to queue. literally "you are here" πbd_bytesβ how many data bytes live in outstanding BD entries. the count of bytes still out there doing their thing πiudmaβ the IUDMA channel used for this request. the ride this request is taking π
π SEE ALSO π
first up, the kernel file we're living in: ./drivers/usb/gadget/udc/bcm63xx_udc.c π
and then... the whole extended universe, no cap. every single one of these, bestie:
struct iudma_ch_cfg(9)struct iudma_ch(9)struct bcm63xx_ep(9)struct bcm63xx_udc(9)bcm63xx_ep_dma_select(9)bcm63xx_set_stall(9)bcm63xx_fifo_setup(9)bcm63xx_fifo_reset_ep(9)bcm63xx_fifo_reset(9)bcm63xx_ep_init(9)bcm63xx_ep_setup(9)iudma_write(9)iudma_read(9)iudma_reset_channel(9)iudma_init_channel(9)iudma_init(9)iudma_uninit(9)bcm63xx_set_ctrl_irqs(9)bcm63xx_select_phy_mode(9)bcm63xx_select_pullup(9)bcm63xx_uninit_udc_hw(9)bcm63xx_init_udc_hw(9)bcm63xx_ep_enable(9)bcm63xx_ep_disable(9)bcm63xx_udc_alloc_request(9)bcm63xx_udc_free_request(9)bcm63xx_udc_queue(9)bcm63xx_udc_dequeue(9)bcm63xx_udc_set_halt(9)bcm63xx_udc_set_wedge(9)bcm63xx_ep0_setup_callback(9)bcm63xx_ep0_spoof_set_cfg(9)bcm63xx_ep0_spoof_set_iface(9)bcm63xx_ep0_map_write(9)bcm63xx_ep0_complete(9)bcm63xx_ep0_nuke_reply(9)bcm63xx_ep0_read_complete(9)bcm63xx_ep0_internal_request(9)bcm63xx_ep0_do_setup(9)bcm63xx_ep0_do_idle(9)bcm63xx_ep0_one_round(9)bcm63xx_ep0_process(9)bcm63xx_udc_get_frame(9)bcm63xx_udc_pullup(9)bcm63xx_udc_start(9)bcm63xx_udc_stop(9)bcm63xx_update_cfg_iface(9)bcm63xx_update_link_speed(9)bcm63xx_update_wedge(9)bcm63xx_udc_ctrl_isr(9)bcm63xx_udc_data_isr(9)bcm63xx_udc_init_debugfs(9)bcm63xx_udc_cleanup_debugfs(9)bcm63xx_udc_probe(9)bcm63xx_udc_remove(9)
like I said. the whole extended universe ππ
ngl this one's short and sweet β five fields, one list, and a see-also section that ate and left absolutely no crumbs π
and that's the page!! coming to you from ./drivers/usb/gadget/udc, dated October 2026 β mwah, go read the actual source bestie, ily πππ¦
π¦ 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