On 7/8/25 14:40, Adrian Chadd wrote:
hi! Thanks for this!
Could we possibly wrap stuff like these compat macros in a #define that
we can undefine? So we can make sure no new code shows up that uses the
"old" paths?
eg LIBUSB10_NO_BACKWARDS_COMPAT / LIBUSB20_NO_BACKWARDS_COMPAT ?
Thanks!
The latter, please. +1
Thanks,
Kyle Evans
-adrian
On Tue, 8 Jul 2025 at 08:12, ShengYi Hung <aokbl...@freebsd.org
<mailto:aokbl...@freebsd.org>> wrote:
The branch main has been updated by aokblast:
URL: https://cgit.FreeBSD.org/src/commit/?
id=f84a0da4e0608a970c775f3d605f8de2b0b8d322 <https://
cgit.FreeBSD.org/src/commit/?
id=f84a0da4e0608a970c775f3d605f8de2b0b8d322>
commit f84a0da4e0608a970c775f3d605f8de2b0b8d322
Author: ShengYi Hung <aokbl...@freebsd.org>
AuthorDate: 2025-06-07 19:43:15 +0000
Commit: ShengYi Hung <aokbl...@freebsd.org>
CommitDate: 2025-07-08 15:11:41 +0000
libusb: rename bNumDeviceCapabilities to bNumDeviceCaps for
compatibility with libusb
THe member bNumDeviceCapabilities is referred to as
bNumDeviceCaps in
the upstream libusb project.
To improve compatibility, we are renaming the member accordingly.
For backward compatibility, a mocro will be defined to map
bNumDeviceCapabilities to bNumDeviceCaps.
See: https://github.com/libusb/libusb/
commit/02ebafc85d3f219842cbabaf78abc8100b6656e5 <https://github.com/
libusb/libusb/commit/02ebafc85d3f219842cbabaf78abc8100b6656e5>
Reviewed by: kevans
Approved by: markj (mentor)
MFC after: 2 weeks
Sponsored by: FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50740
<https://reviews.freebsd.org/D50740>
---
lib/libusb/libusb.h | 5 ++++-
lib/libusb/libusb10_desc.c | 11 ++++++-----
lib/libusb/libusb20_desc.h | 6 +++++-
3 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/lib/libusb/libusb.h b/lib/libusb/libusb.h
index 0aad29aa4ecc..491af3d0a5ec 100644
--- a/lib/libusb/libusb.h
+++ b/lib/libusb/libusb.h
@@ -418,7 +418,10 @@ typedef struct libusb_bos_descriptor {
uint8_t bLength;
uint8_t bDescriptorType;
uint16_t wTotalLength;
- uint8_t bNumDeviceCapabilities;
+#ifndef bNumDeviceCapabilities
+#define bNumDeviceCapabilities bNumDeviceCaps
+#endif
+ uint8_t bNumDeviceCaps;
struct libusb_usb_2_0_device_capability_descriptor
*usb_2_0_ext_cap;
struct libusb_ss_usb_device_capability_descriptor *ss_usb_cap;
struct libusb_bos_dev_capability_descriptor **dev_capability;
diff --git a/lib/libusb/libusb10_desc.c b/lib/libusb/libusb10_desc.c
index 3e36009cbb3a..5f4c46740688 100644
--- a/lib/libusb/libusb10_desc.c
+++ b/lib/libusb/libusb10_desc.c
@@ -470,10 +470,11 @@ libusb_parse_bos_descriptor(const void *buf,
int len,
ptr->bDescriptorType = dtype;
ptr->wTotalLength = ((const uint8_t *)buf)[2] |
(((const uint8_t *)buf)[3] << 8);
- ptr->bNumDeviceCapabilities = ((const
uint8_t *)buf)[4];
+ ptr->bNumDeviceCaps = ((const uint8_t *)buf)[4];
ptr->usb_2_0_ext_cap = NULL;
ptr->ss_usb_cap = NULL;
- ptr->dev_capability = calloc(ptr-
>bNumDeviceCapabilities, sizeof(void *));
+ ptr->dev_capability = calloc(ptr-
>bNumDeviceCaps,
+ sizeof(void *));
if (ptr->dev_capability == NULL) {
free(ptr);
return (LIBUSB_ERROR_NO_MEM);
@@ -485,7 +486,7 @@ libusb_parse_bos_descriptor(const void *buf, int
len,
if (dlen >= 3 &&
ptr != NULL &&
dtype == LIBUSB_DT_DEVICE_CAPABILITY) {
- if (index != ptr->bNumDeviceCapabilities) {
+ if (index != ptr->bNumDeviceCaps) {
ptr->dev_capability[index] =
malloc(dlen);
if (ptr->dev_capability[index] ==
NULL) {
libusb_free_bos_descriptor(ptr);
@@ -542,7 +543,7 @@ libusb_parse_bos_descriptor(const void *buf, int
len,
}
if (ptr != NULL) {
- ptr->bNumDeviceCapabilities = index;
+ ptr->bNumDeviceCaps = index;
return (0); /* success */
}
@@ -557,7 +558,7 @@ libusb_free_bos_descriptor(struct
libusb_bos_descriptor *bos)
if (bos == NULL)
return;
- for (i = 0; i != bos->bNumDeviceCapabilities; i++)
+ for (i = 0; i != bos->bNumDeviceCaps; i++)
free(bos->dev_capability[i]);
free(bos->dev_capability);
free(bos);
diff --git a/lib/libusb/libusb20_desc.h b/lib/libusb/libusb20_desc.h
index 017148a34b1c..0f7c9294ebc8 100644
--- a/lib/libusb/libusb20_desc.h
+++ b/lib/libusb/libusb20_desc.h
@@ -298,11 +298,15 @@ LIBUSB20_MAKE_STRUCT(LIBUSB20_USB_20_DEVCAP_DESC);
LIBUSB20_MAKE_STRUCT(LIBUSB20_SS_USB_DEVCAP_DESC);
+#ifndef bNumDeviceCapabilities
+#define bNumDeviceCapabilities bNumDeviceCaps
+#endif
+
#define LIBUSB20_BOS_DESCRIPTOR(m,n) \
m(n, UINT8_T, bLength, ) \
m(n, UINT8_T, bDescriptorType, ) \
m(n, UINT16_T, wTotalLength, ) \
- m(n, UINT8_T, bNumDeviceCapabilities, ) \
+ m(n, UINT8_T, bNumDeviceCaps, ) \
LIBUSB20_MAKE_STRUCT(LIBUSB20_BOS_DESCRIPTOR);