Rechercher une page de manuel
struct_usb_gadget
Langue: en
Version: October 2010 (fedora - 01/12/10)
Section: 9 (Appels noyau Linux)
NAME
struct_usb_gadget - represents a usb slave deviceSYNOPSIS
struct usb_gadget { const struct usb_gadget_ops * ops; struct usb_ep * ep0; struct list_head ep_list; enum usb_device_speed speed; unsigned is_dualspeed:1; unsigned is_otg:1; unsigned is_a_peripheral:1; unsigned b_hnp_enable:1; unsigned a_hnp_support:1; unsigned a_alt_hnp_support:1; const char * name; struct device dev; };
MEMBERS
ops
- Function pointers used to access hardware-specific operations.
ep0
- Endpoint zero, used when reading or writing responses to driver setup requests
ep_list
- List of other endpoints supported by the device.
speed
- Speed of current connection to USB host.
is_dualspeed
- True if the controller supports both high and full speed operation. If it does, the gadget driver must also support both.
is_otg
- True if the USB device port uses a Mini-AB jack, so that the gadget driver must provide a USB OTG descriptor.
is_a_peripheral
- False unless is_otg, the lqArq end of a USB cable is in the Mini-AB jack, and HNP has been used to switch roles so that the lqArq device currently acts as A-Peripheral, not A-Host.
b_hnp_enable
- OTG device feature flag, indicating that the A-Host enabled HNP support.
a_hnp_support
- OTG device feature flag, indicating that the A-Host supports HNP at this port.
a_alt_hnp_support
- OTG device feature flag, indicating that the A-Host only supports HNP on a different root port.
name
- Identifies the controller hardware type. Used in diagnostics and sometimes configuration.
dev
- Driver model state for this abstract device.
DESCRIPTION
Gadgets have a mostly-portable lqgadget driverrq implementing device functions, handling all usb configurations and interfaces. Gadget drivers talk to hardware-specific code indirectly, through ops vectors. That insulates the gadget driver from hardware details, and packages the hardware endpoints through generic i/o queues. The lqusb_gadgetrq and lqusb_eprq interfaces provide that insulation from the hardware.
Except for the driver data, all fields in this structure are read-only to the gadget driver. That driver data is part of the lqdriver modelrq infrastructure in 2.6 (and later) kernels, and for earlier systems is grouped in a similar structure that's not known to the rest of the kernel.
Values of the three OTG device feature flags are updated before the setup call corresponding to USB_REQ_SET_CONFIGURATION, and before driver suspend calls. They are valid only when is_otg, and when the device is acting as a B-Peripheral (so is_a_peripheral is false).
AUTHOR
David Brownell <dbrownell@users.sourceforge.net>
- Author.
COPYRIGHT
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre