diff options
author | Chris Dickens <christopher.a.dickens@gmail.com> | 2020-04-28 12:17:50 -0700 |
---|---|---|
committer | Chris Dickens <christopher.a.dickens@gmail.com> | 2020-04-28 12:17:50 -0700 |
commit | 8476804b283cfed82aec5e45301b51be3ad68e99 (patch) | |
tree | 6af16f0eba9e48cfcf322f29a6c6ce55d99f48fe /libusb/descriptor.c | |
parent | d21956dc3357bb40cde6d47eaf2497caf8d0a2de (diff) | |
download | libusb-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.c | 52 |
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 |