From 42ce72be3c1706c25567ede7ad38fcc7e92abfe4 Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Fri, 24 Oct 2025 16:00:24 +0300 Subject: [PATCH] Fix libusb get_port_numbers signature for FreeBSD --- src/misc/SDL_libusb.c | 4 ++++ src/misc/SDL_libusb.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/misc/SDL_libusb.c b/src/misc/SDL_libusb.c index 8497d878b5..0b7da1f3e5 100644 --- a/src/misc/SDL_libusb.c +++ b/src/misc/SDL_libusb.c @@ -65,7 +65,11 @@ bool SDL_InitLibUSB(SDL_LibUSBContext **ctx) LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *, uint8_t, struct libusb_config_descriptor **), get_config_descriptor) LOAD_LIBUSB_SYMBOL(void (LIBUSB_CALL *)(struct libusb_config_descriptor *), free_config_descriptor) LOAD_LIBUSB_SYMBOL(uint8_t (LIBUSB_CALL *)(libusb_device *), get_bus_number) +#ifdef SDL_PLATFORM_FREEBSD + LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *dev, uint8_t *port_numbers, uint8_t port_numbers_len), get_port_numbers) +#else LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *dev, uint8_t *port_numbers, int port_numbers_len), get_port_numbers) +#endif LOAD_LIBUSB_SYMBOL(uint8_t (LIBUSB_CALL *)(libusb_device *), get_device_address) LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *, libusb_device_handle **), open) LOAD_LIBUSB_SYMBOL(void (LIBUSB_CALL *)(libusb_device_handle *), close) diff --git a/src/misc/SDL_libusb.h b/src/misc/SDL_libusb.h index 896916f623..4e43b7f099 100644 --- a/src/misc/SDL_libusb.h +++ b/src/misc/SDL_libusb.h @@ -43,7 +43,11 @@ typedef struct SDL_LibUSBContext ); void (LIBUSB_CALL *free_config_descriptor)(struct libusb_config_descriptor *config); uint8_t (LIBUSB_CALL *get_bus_number)(libusb_device *dev); +#ifdef SDL_PLATFORM_FREEBSD + int (LIBUSB_CALL *get_port_numbers)(libusb_device *dev, uint8_t *port_numbers, uint8_t port_numbers_len); +#else int (LIBUSB_CALL *get_port_numbers)(libusb_device *dev, uint8_t *port_numbers, int port_numbers_len); +#endif uint8_t (LIBUSB_CALL *get_device_address)(libusb_device *dev); int (LIBUSB_CALL *open)(libusb_device *dev, libusb_device_handle **dev_handle); void (LIBUSB_CALL *close)(libusb_device_handle *dev_handle);