Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

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).