USB_STRING(9)

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