bcm63xx_ep0_map_write(9)
π bcm63xx_ep0_map_write(9)
okay so bestie, welcome to the Kernel API Manual β¨ you're literally about to learn about one (1) function and honestly it's giving "small but does the important work" energy π
β¨ NAME β¨
bcm63xx_ep0_map_write β it does a dma_map and an iudma_write on a single request. that's it, that's the whole vibe. one request, mapped, written, slayed π
π¦ SYNOPSIS π¦
void bcm63xx_ep0_map_write (struct bcm63xx_udc *udc , int ch_idx ,
struct usb_request *req );
no cap, that's the entire signature. void return, three args, zero drama πΈ
π ARGUMENTS π
three of them, and yes you need all three, i don't make the rules (the kernel does):
udcβ a reference to the device controller. like, the actual controller object. it's the main character here πch_idxβ the IUDMA channel number. which channel we're on, iykyk πreqβ the USB gadget layer's representation of the request. the gadget-layer version of the request, not the raw one, important distinction bestie π
πΈ SEE ALSO πΈ
okay this list is LONG long, like genuinely. but every single one of these deserves a look, so here we go, no skipping, i promised π«Ά
Kernel file ./drivers/usb/gadget/udc/bcm63xx_udc.c β plus these legends:
struct iudma_ch_cfg(9)struct iudma_ch(9)struct bcm63xx_ep(9)struct bcm63xx_req(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_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. long. but iconic πβ¨
ngl bestie, this one's short and sweet β one function, three args, one big SEE ALSO list. go read iudma_write(9) next, it's literally right there π§
and that's the tea, babe π this page lives in ./drivers/usb/gadget/udc, and it's dated October 2026 β so go forth, map your writes, and remember: the kernel loves you back ππ
π¦ 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