Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Jul 2025 14:44:42 -0500
From:      Kyle Evans <kevans@FreeBSD.org>
To:        Adrian Chadd <adrian.chadd@gmail.com>, ShengYi Hung <aokblast@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: f84a0da4e060 - main - libusb: rename bNumDeviceCapabilities to bNumDeviceCaps for compatibility with libusb
Message-ID:  <dd8f037e-0350-4b19-acf9-419f18df3471@FreeBSD.org>
In-Reply-To: <CAJ-Vmo=42TxJWSFjugcUBucbReumPqeHuw2F=v7WF9ai%2BEi-yA@mail.gmail.com>
References:  <202507081512.568FCeX8049407@gitrepo.freebsd.org> <CAJ-Vmo=42TxJWSFjugcUBucbReumPqeHuw2F=v7WF9ai%2BEi-yA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <aokblast@freebsd.org 
> <mailto:aokblast@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 <aokblast@FreeBSD.org>
>     AuthorDate: 2025-06-07 19:43:15 +0000
>     Commit:     ShengYi Hung <aokblast@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);
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dd8f037e-0350-4b19-acf9-419f18df3471>