usb_add_gadget(9)
π usb_add_gadget(9) π
okay so bestie, welcome to the Kernel API Manual, section 9, and today's main character is usb_add_gadget β¨ like yes, that's the whole name, we didn't even need a fancy subtitle, it literally does what it says π«Ά
πΈ NAME πΈ
usb_add_gadget β adds a new gadget to the udc class driver list π
no cap, that's the entire job description. it puts your gadget on the list. iconic behaviour, honestly.
β¨ SYNOPSIS β¨
int usb_add_gadget (struct usb_gadget *gadget );
that's it. that's the whole vibe. one function, one pointer, one int coming back at you π
π¦ ARGUMENTS π¦
gadgetβ the gadget to be added to the list. this is your gadget, the one you're introducing to the group chat ππ
π₯ DESCRIPTION π₯
so here's the tea β β it returns zero on success, and a negative errno otherwise. that's the classic Unix glow-up: 0 means slay, anything negative means something went sideways π
β οΈ and listen, this part matters: it does not do a finalusb_put_gadgetif an error occurs. read that again, bestie. if it fails, the cleanup is your problem, not the function's. no refunds, no takebacks, no freeusb_put_gadgeton the way out π
π§ SEE ALSO π§
like a whole friend group, fr fr β go say hi to all of them π
- Kernel file
./drivers/usb/gadget/udc/core.c struct usb_udc(9)usb_ep_set_maxpacket_limit(9)usb_ep_enable(9)usb_ep_disable(9)usb_ep_alloc_request(9)usb_ep_free_request(9)usb_ep_queue(9)usb_ep_dequeue(9)usb_ep_set_halt(9)usb_ep_clear_halt(9)usb_ep_set_wedge(9)usb_ep_fifo_status(9)usb_ep_fifo_flush(9)usb_gadget_frame_number(9)usb_gadget_wakeup(9)usb_gadget_set_remote_wakeup(9)usb_gadget_set_selfpowered(9)usb_gadget_clear_selfpowered(9)usb_gadget_vbus_connect(9)usb_gadget_vbus_draw(9)usb_gadget_vbus_disconnect(9)usb_gadget_connect(9)usb_gadget_disconnect(9)usb_gadget_deactivate(9)usb_gadget_activate(9)usb_gadget_giveback_request(9)gadget_find_ep_by_name(9)usb_gadget_check_config(9)usb_udc_vbus_handler(9)usb_gadget_udc_reset(9)usb_gadget_udc_start_locked(9)usb_gadget_udc_stop_locked(9)usb_gadget_udc_set_speed(9)usb_gadget_enable_async_callbacks(9)usb_gadget_disable_async_callbacks(9)usb_udc_release(9)usb_initialize_gadget(9)usb_add_gadget_udc_release(9)usb_get_gadget_udc_name(9)usb_add_gadget_udc(9)usb_del_gadget(9)usb_del_gadget_udc(9)
and that's the whole page, bestie π sourced fresh from ./drivers/usb/gadget/udc, dated October 2026 β go forth and add your gadget, you absolute legend ππ
π¦ 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