Provided by:
linux-doc-2.6.15_2.6.15-23.39_all 
NAME
usb_gadget_get_string - fill out a string descriptor
SYNOPSIS
int usb_gadget_get_string (struct usb_gadget_strings * table, int id,
u8 * buf);
ARGUMENTS
table of c strings encoded using UTF-8
id string id, from low byte of wValue in get string descriptor
buf at least 256 bytes
DESCRIPTION
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
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).
AUTHOR
David Brownell <dbrownell@users.sourceforge.net>.