---
name: "usb_string_ids_n"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/usb_string_ids_n"
---

# usb\_string\_ids\_n(9)

allocate unused string IDs in batch

## NAME

usb\_string\_ids\_n - allocate unused string IDs in batch

## SYNOPSIS

**int usb\_string\_ids\_n(struct usb\_composite\_dev \*** *c***, unsigned** *n***);**

## ARGUMENTS

*c*

the device whose string descriptor IDs are being allocated

*n*

number of string IDs to allocate

## CONTEXT

single threaded during gadget setup

## DESCRIPTION

Returns the first requested ID. This ID and next *n*-1 IDs are now valid IDs. At least provided that *n* is non-zero because if it is, returns last requested ID which is now very useful information.

*usb\_string\_ids\_n*() is called from **bind** callbacks to allocate string IDs. Drivers for functions, configurations, or gadgets will then store that ID in the appropriate descriptors and string table.

All string identifier should be allocated using this, *usb\_string\_id*() or *usb\_string\_ids\_n*() routine, to ensure that for example different functions don't wrongly assign different meanings to the same identifier.

## AUTHOR

**David Brownell** \<dbrownell@users.sourceforge.net\>

Author.

## COPYRIGHT
