1STRUCT USB_COMPOSITE(9) Kernel Mode Gadget API STRUCT USB_COMPOSITE(9)
2
3
4
6 struct_usb_composite_dev - represents one composite usb gadget
7
9 struct usb_composite_dev {
10 struct usb_gadget * gadget;
11 struct usb_request * req;
12 unsigned bufsiz;
13 struct usb_configuration * config;
14 };
15
17 gadget
18 read-only, abstracts the gadget´s usb peripheral controller
19
20 req
21 used for control responses; buffer is pre-allocated
22
23 bufsiz
24 size of buffer pre-allocated in req
25
26 config
27 the currently active configuration
28
30 One of these devices is allocated and initialized before the associated
31 device driver´s bind is called.
32
34 it appears that some WUSB devices will need to be built by combining a
35 normal (wired) gadget with a wireless one. This revision of the gadget
36 framework should probably try to make sure doing that won´t hurt too
37 much.
38
40 (a) a second gadget here, discovery mechanism TBD, but likely needing
41 separate “register/unregister WUSB gadget” calls; (b) updates to
42 usb_gadget to include flags “is it wireless”, “is it wired”, plus
43 (presumably in a wrapper structure) bandgroup and PHY info; (c)
44 presumably a wireless_ep wrapping a usb_ep, and reporting
45 wireless-specific parameters like maxburst and maxsequence; (d)
46 configurations that are specific to wireless links; (e) function
47 drivers that understand wireless configs and will support wireless for
48 (additional) function instances; (f) a function to support association
49 setup (like CBAF), not necessarily requiring a wireless adapter; (g)
50 composite device setup that can create one or more wireless configs,
51 including appropriate association setup support; (h) more, TBD.
52
54 David Brownell <dbrownell@users.sourceforge.net>
55 Author.
56
58Kernel Hackers Manual 2.6. June 2019 STRUCT USB_COMPOSITE(9)