usb_string
Prev | Chapter 5. USB Core APIs | Next

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

Prev | Up | Next
usb_get_descriptor | Home | usb_get_status