.\" 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_GET_STRING" "9" "09 October 2005" "" "" .SH NAME usb_gadget_get_string \- fill out a string descriptor .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp int usb_gadget_get_string (struct usb_gadget_strings * \fItable\fB, int \fIid\fB, u8 * \fIbuf\fB); \fR .SH "ARGUMENTS" .TP \fB\fItable\fB\fR of c strings encoded using UTF-8 .TP \fB\fIid\fB\fR string id, from low byte of wValue in get string descriptor .TP \fB\fIbuf\fB\fR at least 256 bytes .SH "DESCRIPTION" .PP Finds the UTF-8 string matching the ID, and converts it into a string descriptor in utf16-le. Returns length of descriptor (always even) or negative errno .PP If your driver needs stings in multiple languages, you'll probably ``switch (wIndex) { ... }'' in your ep0 string descriptor logic, using this routine after choosing which set of UTF-8 strings to use. Note that US-ASCII is a strict subset of UTF-8; any string bytes with the eighth bit set will be multibyte UTF-8 characters, not ISO-8859/1 characters (which are also widely used in C strings).