.\" This documentation was generated from the book titled "USB Gadget API for Linux", which is part of the Linux kernel source. .\" .\" This documentation comes with the following legal notice: .\" .\" This documentation is free software; you can redistribute .\" it and/or modify it under the terms of the GNU General Public .\" License as published by the Free Software Foundation; either .\" version 2 of the License, or (at your option) any later .\" version. .\" .\" This program is distributed in the hope that it will be .\" useful, but WITHOUT ANY WARRANTY; without even the implied .\" warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .\" See the GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this program; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, .\" MA 02111-1307 USA .\" .\" For more details see the file COPYING in the source .\" distribution of Linux. .\" .\" For comments on the formatting of this manpage, please contact Michael Still .\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "USB_GADGET" "9" "13 April 2004" "" "" .SH NAME struct usb_gadget \- represents a usb slave device .SH SYNOPSIS .nf struct usb_gadget { const struct usb_gadget_ops * ops; struct usb_ep * ep0; struct list_head ep_list; enum usb_device_speed speed; const char * name; struct device dev; }; .fi .SH "MEMBERS" .TP \fBops\fR Function pointers used to access hardware-specific operations. .TP \fBep0\fR Endpoint zero, used when reading or writing responses to driver \fBsetup\fR requests .TP \fBep_list\fR List of other endpoints supported by the device. .TP \fBspeed\fR Speed of current connection to USB host. .TP \fBname\fR Identifies the controller hardware type. Used in diagnostics and sometimes configuration. .TP \fBdev\fR Driver model state for this abstract device. .SH "DESCRIPTION" .PP Gadgets have a mostly-portable ``gadget driver'' 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 ``usb_gadget'' and ``usb_ep'' interfaces provide that insulation from the hardware. .PP Except for the driver data, all fields in this structure are read-only to the gadget driver. That driver data is part of the ``driver model'' infrastructure in 2.5 (and later) kernels, and for earlier systems is grouped in a similar structure that's not known to the rest of the kernel. .SH "ABOUT THIS DOCUMENT" .PP This documentation was generated with kernel version 2.6.1.