summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Metcalfe <ryan.metcalfe@novanta.com>2021-07-28 19:32:42 -0400
committerTormod Volden <debian.tormod@gmail.com>2023-01-19 15:02:11 +0100
commit99f1942e81caf3443f47057eba53356046a10238 (patch)
treec80e160e827df39cb9af5279e70d8a828b5db377
parent5ec2821fdc491b470306d3cbb7175e53388d46fd (diff)
downloadlibusb-99f1942e81caf3443f47057eba53356046a10238.tar.gz
xusb: Print info from IAD descriptors
Signed-off-by: Ryan Metcalfe <ryan.metcalfe@novanta.com>
-rw-r--r--examples/xusb.c26
-rw-r--r--libusb/version_nano.h2
2 files changed, 27 insertions, 1 deletions
diff --git a/examples/xusb.c b/examples/xusb.c
index 5c65298..6266111 100644
--- a/examples/xusb.c
+++ b/examples/xusb.c
@@ -946,6 +946,32 @@ static int test_device(uint16_t vid, uint16_t pid)
printf(" no descriptor\n");
}
+ // Read IADs
+ printf("\nReading interface association descriptors (IADs) for first configuration:\n");
+ struct libusb_interface_association_descriptor_array *iad_array;
+ r = libusb_get_interface_association_descriptors(dev, 0, &iad_array);
+ if (r == LIBUSB_SUCCESS) {
+ printf(" nb IADs: %d\n", iad_array->length);
+ for (i=0; i<iad_array->length;i++) {
+ const struct libusb_interface_association_descriptor *iad = &iad_array->iad[i];
+ printf(" IAD %d:\n", i);
+ printf(" bFirstInterface: %u\n", iad->bFirstInterface);
+ printf(" bInterfaceCount: %u\n", iad->bInterfaceCount);
+ printf(" bFunctionClass: %02X\n", iad->bFunctionClass);
+ printf(" bFunctionSubClass: %02X\n", iad->bFunctionSubClass);
+ printf(" bFunctionProtocol: %02X\n", iad->bFunctionProtocol);
+ if (iad->iFunction) {
+ if (libusb_get_string_descriptor_ascii(handle, iad->iFunction, (unsigned char*)string, sizeof(string)) > 0)
+ printf(" iFunction: %u (%s)\n", iad->iFunction, string);
+ else
+ printf(" iFunction: %u (libusb_get_string_descriptor_ascii failed!)\n", iad->iFunction);
+ }
+ else
+ printf(" iFunction: 0\n");
+ }
+ libusb_free_interface_association_descriptors(iad_array);
+ }
+
switch(test_mode) {
case USE_PS3:
CALL_CHECK_CLOSE(display_ps3_status(handle), handle);
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 6cb280e..259aba6 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11765
+#define LIBUSB_NANO 11766