Provided by:
linux-doc-2.6.15_2.6.15-23.39_all 
NAME
usb_string - returns ISO 8859-1 version of a string descriptor
SYNOPSIS
int usb_string (struct usb_device * dev, int index, char * buf,
size_t size);
ARGUMENTS
dev the device whose string descriptor is being retrieved
index the number of the descriptor
buf where to put the string
size how big is ‘‘buf’’?
CONTEXT
!in_interrupt ()
DESCRIPTION
This converts the UTF-16LE encoded strings returned by devices, from
usb_get_string_descriptor, to null-terminated ISO-8859-1 encoded ones
that are more usable in most kernel contexts. Note that all characters
in the chosen descriptor that can’t be encoded using ISO-8859-1 are
converted to the question mark (‘‘?’’) character, and this function
chooses strings in the first language supported by the device.
The ASCII (or, redundantly, ‘‘US-ASCII’’) character set is the
seven-bit subset of ISO 8859-1. ISO-8859-1 is the eight-bit subset of
Unicode, and is appropriate for use many uses of English and several
other Western European languages. (But it doesn’t include the ‘‘Euro’’
symbol.)
This call is synchronous, and may not be used in an interrupt context.
Returns length of the string (>= 0) or usb_control_msg status (< 0).