summaryrefslogtreecommitdiff
path: root/libusb/descriptor.c
diff options
context:
space:
mode:
authorChris Dickens <christopher.a.dickens@gmail.com>2020-04-28 12:17:50 -0700
committerChris Dickens <christopher.a.dickens@gmail.com>2020-04-28 12:17:50 -0700
commit8476804b283cfed82aec5e45301b51be3ad68e99 (patch)
tree6af16f0eba9e48cfcf322f29a6c6ce55d99f48fe /libusb/descriptor.c
parentd21956dc3357bb40cde6d47eaf2497caf8d0a2de (diff)
downloadlibusb-8476804b283cfed82aec5e45301b51be3ad68e99.tar.gz
descriptor: Remove usbi_get_config_index_by_value()
Only one caller of this function exists and it lives in the descriptor source code. Remove the function and merge it into the function that calls it. Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/descriptor.c')
-rw-r--r--libusb/descriptor.c52
1 files changed, 15 insertions, 37 deletions
diff --git a/libusb/descriptor.c b/libusb/descriptor.c
index 08ed554..2097b84 100644
--- a/libusb/descriptor.c
+++ b/libusb/descriptor.c
@@ -598,35 +598,6 @@ int API_EXPORTED libusb_get_config_descriptor(libusb_device *dev,
return r;
}
-/* iterate through all configurations, returning the index of the configuration
- * matching a specific bConfigurationValue in the idx output parameter, or -1
- * if the config was not found.
- * returns 0 on success or a LIBUSB_ERROR code
- */
-int usbi_get_config_index_by_value(struct libusb_device *dev,
- uint8_t bConfigurationValue, int *idx)
-{
- uint8_t i;
-
- usbi_dbg("value %d", bConfigurationValue);
- for (i = 0; i < dev->device_descriptor.bNumConfigurations; i++) {
- unsigned char tmp[6];
- int r = usbi_backend.get_config_descriptor(dev, i, tmp, sizeof(tmp));
-
- if (r < 0) {
- *idx = -1;
- return r;
- }
- if (tmp[5] == bConfigurationValue) {
- *idx = i;
- return 0;
- }
- }
-
- *idx = -1;
- return 0;
-}
-
/** \ingroup libusb_desc
* Get a USB configuration descriptor with a specific bConfigurationValue.
* This is a non-blocking function which does not involve any requests being
@@ -647,7 +618,8 @@ int usbi_get_config_index_by_value(struct libusb_device *dev,
int API_EXPORTED libusb_get_config_descriptor_by_value(libusb_device *dev,
uint8_t bConfigurationValue, struct libusb_config_descriptor **config)
{
- int r, idx;
+ uint8_t idx;
+ int r;
if (usbi_backend.get_config_descriptor_by_value) {
void *buf;
@@ -659,13 +631,19 @@ int API_EXPORTED libusb_get_config_descriptor_by_value(libusb_device *dev,
return raw_desc_to_config(dev->ctx, buf, r, config);
}
- r = usbi_get_config_index_by_value(dev, bConfigurationValue, &idx);
- if (r < 0)
- return r;
- else if (idx == -1)
- return LIBUSB_ERROR_NOT_FOUND;
- else
- return libusb_get_config_descriptor(dev, (uint8_t) idx, config);
+ usbi_dbg("value %u", bConfigurationValue);
+ for (idx = 0; idx < dev->device_descriptor.bNumConfigurations; idx++) {
+ unsigned char tmp[6];
+
+ r = usbi_backend.get_config_descriptor(dev, idx, tmp, sizeof(tmp));
+ if (r < 0)
+ return r;
+
+ if (tmp[5] == bConfigurationValue)
+ return libusb_get_config_descriptor(dev, idx, config);
+ }
+
+ return LIBUSB_ERROR_NOT_FOUND;
}
/** \ingroup libusb_desc