/* descriptor 0 has the language id */ if (id == 0) {
buf [0] = 4;
buf [1] = USB_DT_STRING;
buf [2] = (u8) table->language;
buf [3] = (u8) (table->language >> 8); return4;
} for (s = table->strings; s && s->s; s++) if (s->id == id) break;
/* unrecognized: stall. */ if (!s || !s->s) return -EINVAL;
/* string descriptors have length, tag, then UTF16-LE text */
len = min_t(size_t, USB_MAX_STRING_LEN, strlen(s->s));
len = utf8s_to_utf16s(s->s, len, UTF16_LITTLE_ENDIAN,
(wchar_t *) &buf[2], USB_MAX_STRING_LEN); if (len < 0) return -EINVAL;
buf [0] = (len + 1) * 2;
buf [1] = USB_DT_STRING; return buf [0];
}
EXPORT_SYMBOL_GPL(usb_gadget_get_string);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.