aboutsummaryrefslogtreecommitdiff
path: root/lib/libusb/libusb10_desc.c
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2012-05-07 14:07:13 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2012-05-07 14:07:13 +0000
commit78ed0e49ff5fb814c92b991f9a7293dc2603c247 (patch)
treef9b26a5908fe6698ac82d4ad205a847d599d8dc9 /lib/libusb/libusb10_desc.c
parent51a65f35df18663626632156e3d1084f348aca71 (diff)
downloadsrc-78ed0e49ff5fb814c92b991f9a7293dc2603c247.tar.gz
src-78ed0e49ff5fb814c92b991f9a7293dc2603c247.zip
Notes
Diffstat (limited to 'lib/libusb/libusb10_desc.c')
-rw-r--r--lib/libusb/libusb10_desc.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/libusb/libusb10_desc.c b/lib/libusb/libusb10_desc.c
index 8e39bab15b2c..11e201f37551 100644
--- a/lib/libusb/libusb10_desc.c
+++ b/lib/libusb/libusb10_desc.c
@@ -294,6 +294,25 @@ libusb_free_config_descriptor(struct libusb_config_descriptor *config)
}
int
+libusb_get_string_descriptor(libusb_device_handle *pdev,
+ uint8_t desc_index, uint16_t langid, unsigned char *data,
+ int length)
+{
+ if (pdev == NULL || data == NULL || length < 1)
+ return (LIBUSB_ERROR_INVALID_PARAM);
+
+ if (length > 65535)
+ length = 65535;
+
+ /* put some default data into the destination buffer */
+ data[0] = 0;
+
+ return (libusb_control_transfer(pdev, LIBUSB_ENDPOINT_IN,
+ LIBUSB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_STRING << 8) | desc_index,
+ langid, data, length, 1000));
+}
+
+int
libusb_get_string_descriptor_ascii(libusb_device_handle *pdev,
uint8_t desc_index, unsigned char *data, int length)
{