From 5c7ddb5ddf1fe1d9f8c68e7deefe3bd53e1e3e8c Mon Sep 17 00:00:00 2001 From: Chris Dickens Date: Wed, 22 Jan 2020 16:59:25 -0800 Subject: Misc: Cleanup across multiple backends Remove the clear_transfer_priv() function from all backends besides Linux. This function is only needed if the backend calls usbi_handle_disconnect(), which only Linux does. Remove the {attach,detach}_kernel_driver() functions from the Darwin backend. They return LIBUSB_ERROR_NOT_SUPPORTED, but the same result is achieved by having those functions be NULL. Remove the init() and exit() functions from the SunOS backend. They are optional and as no-ops are pointless. Remove NULL and 0 initializers from usbi_backend structures. Use named initializers in the NetBSD backend. Signed-off-by: Chris Dickens --- libusb/os/darwin_usb.c | 27 -------------- libusb/os/haiku_usb_raw.cpp | 36 +----------------- libusb/os/linux_usbfs.c | 1 - libusb/os/netbsd_usb.c | 89 ++++++++++++++++----------------------------- libusb/os/null_usb.c | 36 ------------------ libusb/os/openbsd_usb.c | 11 +----- libusb/os/sunos_usb.c | 27 -------------- libusb/os/windows_common.c | 8 +--- libusb/version_nano.h | 2 +- 9 files changed, 36 insertions(+), 201 deletions(-) diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c index 75ab2be..805ec07 100644 --- a/libusb/os/darwin_usb.c +++ b/libusb/os/darwin_usb.c @@ -1715,19 +1715,6 @@ static int darwin_kernel_driver_active(struct libusb_device_handle *dev_handle, return 0; } -/* attaching/detaching kernel drivers is not currently supported (maybe in the future?) */ -static int darwin_attach_kernel_driver (struct libusb_device_handle *dev_handle, int interface) { - UNUSED(dev_handle); - UNUSED(interface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int darwin_detach_kernel_driver (struct libusb_device_handle *dev_handle, int interface) { - UNUSED(dev_handle); - UNUSED(interface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - static void darwin_destroy_device(struct libusb_device *dev) { struct darwin_device_priv *dpriv = (struct darwin_device_priv *) dev->os_priv; @@ -2058,16 +2045,6 @@ static int darwin_cancel_transfer(struct usbi_transfer *itransfer) { } } -static void darwin_clear_transfer_priv (struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - - if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS && tpriv->isoc_framelist) { - free (tpriv->isoc_framelist); - tpriv->isoc_framelist = NULL; - } -} - static void darwin_async_io_callback (void *refcon, IOReturn result, void *arg0) { struct usbi_transfer *itransfer = (struct usbi_transfer *)refcon; struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); @@ -2252,7 +2229,6 @@ const struct usbi_os_backend usbi_backend = { .caps = 0, .init = darwin_init, .exit = darwin_exit, - .get_device_list = NULL, /* not needed */ .get_device_descriptor = darwin_get_device_descriptor, .get_active_config_descriptor = darwin_get_active_config_descriptor, .get_config_descriptor = darwin_get_config_descriptor, @@ -2275,14 +2251,11 @@ const struct usbi_os_backend usbi_backend = { #endif .kernel_driver_active = darwin_kernel_driver_active, - .detach_kernel_driver = darwin_detach_kernel_driver, - .attach_kernel_driver = darwin_attach_kernel_driver, .destroy_device = darwin_destroy_device, .submit_transfer = darwin_submit_transfer, .cancel_transfer = darwin_cancel_transfer, - .clear_transfer_priv = darwin_clear_transfer_priv, .handle_transfer_completion = darwin_handle_transfer_completion, diff --git a/libusb/os/haiku_usb_raw.cpp b/libusb/os/haiku_usb_raw.cpp index 67b270d..82cf088 100644 --- a/libusb/os/haiku_usb_raw.cpp +++ b/libusb/os/haiku_usb_raw.cpp @@ -165,14 +165,6 @@ haiku_cancel_transfer(struct usbi_transfer *itransfer) return fDeviceHandle->CancelTransfer(*((USBTransfer **)usbi_transfer_get_os_priv(itransfer))); } -static void -haiku_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - USBTransfer *transfer = *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)); - delete transfer; - *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)) = NULL; -} - static int haiku_handle_transfer_completion(struct usbi_transfer *itransfer) { @@ -214,20 +206,15 @@ const struct usbi_os_backend usbi_backend = { .caps = 0, .init = haiku_init, .exit = haiku_exit, - .set_option = NULL, - .get_device_list = NULL, - .hotplug_poll = NULL, - .wrap_sys_device = NULL, .open = haiku_open, .close = haiku_close, + .get_device_descriptor = haiku_get_device_descriptor, .get_active_config_descriptor = haiku_get_active_config_descriptor, .get_config_descriptor = haiku_get_config_descriptor, - .get_config_descriptor_by_value = NULL, - - .get_configuration = NULL, .set_configuration = haiku_set_configuration, + .claim_interface = haiku_claim_interface, .release_interface = haiku_release_interface, @@ -235,32 +222,13 @@ const struct usbi_os_backend usbi_backend = { .clear_halt = haiku_clear_halt, .reset_device = haiku_reset_device, - .alloc_streams = NULL, - .free_streams = NULL, - - .dev_mem_alloc = NULL, - .dev_mem_free = NULL, - - .kernel_driver_active = NULL, - .detach_kernel_driver = NULL, - .attach_kernel_driver = NULL, - - .destroy_device = NULL, - .submit_transfer = haiku_submit_transfer, .cancel_transfer = haiku_cancel_transfer, - .clear_transfer_priv = haiku_clear_transfer_priv, - .handle_events = NULL, .handle_transfer_completion = haiku_handle_transfer_completion, .clock_gettime = haiku_clock_gettime, -#ifdef USBI_TIMERFD_AVAILABLE - .get_timerfd_clockid = NULL, -#endif - - .context_priv_size = 0, .device_priv_size = sizeof(USBDevice *), .device_handle_priv_size = sizeof(USBDeviceHandle *), .transfer_priv_size = sizeof(USBTransfer *), diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c index f16907b..1b73fde 100644 --- a/libusb/os/linux_usbfs.c +++ b/libusb/os/linux_usbfs.c @@ -2852,7 +2852,6 @@ const struct usbi_os_backend usbi_backend = { .caps = USBI_CAP_HAS_HID_ACCESS|USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER, .init = op_init, .exit = op_exit, - .get_device_list = NULL, .hotplug_poll = op_hotplug_poll, .get_device_descriptor = op_get_device_descriptor, .get_active_config_descriptor = op_get_active_config_descriptor, diff --git a/libusb/os/netbsd_usb.c b/libusb/os/netbsd_usb.c index 79aeca9..16e07f2 100644 --- a/libusb/os/netbsd_usb.c +++ b/libusb/os/netbsd_usb.c @@ -73,7 +73,6 @@ static void netbsd_destroy_device(struct libusb_device *); static int netbsd_submit_transfer(struct usbi_transfer *); static int netbsd_cancel_transfer(struct usbi_transfer *); -static void netbsd_clear_transfer_priv(struct usbi_transfer *); static int netbsd_handle_transfer_completion(struct usbi_transfer *); static int netbsd_clock_gettime(int, struct timespec *); @@ -87,55 +86,37 @@ static int _sync_gen_transfer(struct usbi_transfer *); static int _access_endpoint(struct libusb_transfer *); const struct usbi_os_backend usbi_backend = { - "Synchronous NetBSD backend", - 0, - NULL, /* init() */ - NULL, /* exit() */ - NULL, /* set_option() */ - netbsd_get_device_list, - NULL, /* hotplug_poll */ - netbsd_open, - netbsd_close, - - netbsd_get_device_descriptor, - netbsd_get_active_config_descriptor, - netbsd_get_config_descriptor, - NULL, /* get_config_descriptor_by_value() */ - - netbsd_get_configuration, - netbsd_set_configuration, - - netbsd_claim_interface, - netbsd_release_interface, - - netbsd_set_interface_altsetting, - netbsd_clear_halt, - netbsd_reset_device, - - NULL, /* alloc_streams */ - NULL, /* free_streams */ - - NULL, /* dev_mem_alloc() */ - NULL, /* dev_mem_free() */ - - NULL, /* kernel_driver_active() */ - NULL, /* detach_kernel_driver() */ - NULL, /* attach_kernel_driver() */ - - netbsd_destroy_device, - - netbsd_submit_transfer, - netbsd_cancel_transfer, - netbsd_clear_transfer_priv, - - NULL, /* handle_events() */ - netbsd_handle_transfer_completion, - - netbsd_clock_gettime, - 0, /* context_priv_size */ - sizeof(struct device_priv), - sizeof(struct handle_priv), - 0, /* transfer_priv_size */ + .name = "Synchronous NetBSD backend", + .caps = 0, + .get_device_list = netbsd_get_device_list, + .open = netbsd_open, + .close = netbsd_close, + + .get_device_descriptor = netbsd_get_device_descriptor, + .get_active_config_descriptor = netbsd_get_active_config_descriptor, + .get_config_descriptor = netbsd_get_config_descriptor, + + .get_configuration = netbsd_get_configuration, + .set_configuration = netbsd_set_configuration, + + .claim_interface = netbsd_claim_interface, + .release_interface = netbsd_release_interface, + + .set_interface_altsetting = netbsd_set_interface_altsetting, + .clear_halt = netbsd_clear_halt, + .reset_device = netbsd_reset_device, + + .destroy_device = netbsd_destroy_device, + + .submit_transfer = netbsd_submit_transfer, + .cancel_transfer = netbsd_cancel_transfer, + + .handle_transfer_completion = netbsd_handle_transfer_completion, + + .clock_gettime = netbsd_clock_gettime, + + .device_priv_size = sizeof(struct device_priv), + .device_handle_priv_size = sizeof(struct handle_priv), }; int @@ -481,14 +462,6 @@ netbsd_cancel_transfer(struct usbi_transfer *itransfer) return (LIBUSB_ERROR_NOT_SUPPORTED); } -void -netbsd_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - /* Nothing to do */ -} - int netbsd_handle_transfer_completion(struct usbi_transfer *itransfer) { diff --git a/libusb/os/null_usb.c b/libusb/os/null_usb.c index 97fa0b8..c050322 100644 --- a/libusb/os/null_usb.c +++ b/libusb/os/null_usb.c @@ -106,17 +106,6 @@ null_cancel_transfer(struct usbi_transfer *itransfer) return LIBUSB_ERROR_NOT_SUPPORTED; } -static void -null_clear_transfer_priv(struct usbi_transfer *itransfer) -{ -} - -static int -null_handle_transfer_completion(struct usbi_transfer *itransfer) -{ - return LIBUSB_ERROR_NOT_SUPPORTED; -} - static int null_clock_gettime(int clkid, struct timespec *tp) { @@ -133,44 +122,19 @@ null_clock_gettime(int clkid, struct timespec *tp) const struct usbi_os_backend usbi_backend = { .name = "Null backend", .caps = 0, - .init = NULL, - .exit = NULL, - .set_option = NULL, .get_device_list = null_get_device_list, - .hotplug_poll = NULL, - .wrap_sys_device = NULL, .open = null_open, .close = null_close, .get_device_descriptor = null_get_device_descriptor, .get_active_config_descriptor = null_get_active_config_descriptor, .get_config_descriptor = null_get_config_descriptor, - .get_config_descriptor_by_value = NULL, - .get_configuration = NULL, .set_configuration = null_set_configuration, .claim_interface = null_claim_interface, .release_interface = null_release_interface, .set_interface_altsetting = null_set_interface_altsetting, .clear_halt = null_clear_halt, .reset_device = null_reset_device, - .alloc_streams = NULL, - .free_streams = NULL, - .dev_mem_alloc = NULL, - .dev_mem_free = NULL, - .kernel_driver_active = NULL, - .detach_kernel_driver = NULL, - .attach_kernel_driver = NULL, - .destroy_device = NULL, .submit_transfer = null_submit_transfer, .cancel_transfer = null_cancel_transfer, - .clear_transfer_priv = null_clear_transfer_priv, - .handle_events = NULL, - .handle_transfer_completion = null_handle_transfer_completion, .clock_gettime = null_clock_gettime, -#ifdef USBI_TIMERFD_AVAILABLE - .get_timerfd_clockid = NULL, -#endif - .context_priv_size = 0, - .device_priv_size = 0, - .device_handle_priv_size = 0, - .transfer_priv_size = 0, }; diff --git a/libusb/os/openbsd_usb.c b/libusb/os/openbsd_usb.c index 74d2c0f..ed4d3f2 100644 --- a/libusb/os/openbsd_usb.c +++ b/libusb/os/openbsd_usb.c @@ -73,7 +73,6 @@ static void obsd_destroy_device(struct libusb_device *); static int obsd_submit_transfer(struct usbi_transfer *); static int obsd_cancel_transfer(struct usbi_transfer *); -static void obsd_clear_transfer_priv(struct usbi_transfer *); static int obsd_handle_transfer_completion(struct usbi_transfer *); static int obsd_clock_gettime(int, struct timespec *); @@ -112,11 +111,11 @@ const struct usbi_os_backend usbi_backend = { .submit_transfer = obsd_submit_transfer, .cancel_transfer = obsd_cancel_transfer, - .clear_transfer_priv = obsd_clear_transfer_priv, .handle_transfer_completion = obsd_handle_transfer_completion, .clock_gettime = obsd_clock_gettime, + .device_priv_size = sizeof(struct device_priv), .device_handle_priv_size = sizeof(struct handle_priv), }; @@ -502,14 +501,6 @@ obsd_cancel_transfer(struct usbi_transfer *itransfer) return (LIBUSB_ERROR_NOT_SUPPORTED); } -void -obsd_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - /* Nothing to do */ -} - int obsd_handle_transfer_completion(struct usbi_transfer *itransfer) { diff --git a/libusb/os/sunos_usb.c b/libusb/os/sunos_usb.c index 6960033..20aefe8 100644 --- a/libusb/os/sunos_usb.c +++ b/libusb/os/sunos_usb.c @@ -79,7 +79,6 @@ static int sunos_reset_device(struct libusb_device_handle *); static void sunos_destroy_device(struct libusb_device *); static int sunos_submit_transfer(struct usbi_transfer *); static int sunos_cancel_transfer(struct usbi_transfer *); -static void sunos_clear_transfer_priv(struct usbi_transfer *); static int sunos_handle_transfer_completion(struct usbi_transfer *); static int sunos_clock_gettime(int, struct timespec *); static int sunos_kernel_driver_active(struct libusb_device_handle *, int interface); @@ -245,16 +244,6 @@ sunos_kernel_driver_active(struct libusb_device_handle *dev, int interface) static int _errno_to_libusb(int); static int sunos_usb_get_status(int fd); -static int sunos_init(struct libusb_context *ctx) -{ - return (LIBUSB_SUCCESS); -} - -static void sunos_exit(struct libusb_context *ctx) -{ - usbi_dbg(""); -} - static string_list_t * sunos_new_string_list(void) { @@ -1511,14 +1500,6 @@ sunos_cancel_transfer(struct usbi_transfer *itransfer) return (ret); } -void -sunos_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - /* Nothing to do */ -} - int sunos_handle_transfer_completion(struct usbi_transfer *itransfer) { @@ -1670,33 +1651,25 @@ static clockid_t op_get_timerfd_clockid(void) const struct usbi_os_backend usbi_backend = { .name = "Solaris", .caps = 0, - .init = sunos_init, - .exit = sunos_exit, .get_device_list = sunos_get_device_list, .get_device_descriptor = sunos_get_device_descriptor, .get_active_config_descriptor = sunos_get_active_config_descriptor, .get_config_descriptor = sunos_get_config_descriptor, - .hotplug_poll = NULL, .open = sunos_open, .close = sunos_close, .get_configuration = sunos_get_configuration, .set_configuration = sunos_set_configuration, - .claim_interface = sunos_claim_interface, .release_interface = sunos_release_interface, .set_interface_altsetting = sunos_set_interface_altsetting, .clear_halt = sunos_clear_halt, .reset_device = sunos_reset_device, /* TODO */ - .alloc_streams = NULL, - .free_streams = NULL, .kernel_driver_active = sunos_kernel_driver_active, .detach_kernel_driver = sunos_detach_kernel_driver, .attach_kernel_driver = sunos_attach_kernel_driver, .destroy_device = sunos_destroy_device, .submit_transfer = sunos_submit_transfer, .cancel_transfer = sunos_cancel_transfer, - .handle_events = NULL, - .clear_transfer_priv = sunos_clear_transfer_priv, .handle_transfer_completion = sunos_handle_transfer_completion, .clock_gettime = sunos_clock_gettime, #ifdef USBI_TIMERFD_AVAILABLE diff --git a/libusb/os/windows_common.c b/libusb/os/windows_common.c index 6704cb0..a8ee237 100644 --- a/libusb/os/windows_common.c +++ b/libusb/os/windows_common.c @@ -678,12 +678,6 @@ static int windows_cancel_transfer(struct usbi_transfer *itransfer) return priv->backend->cancel_transfer(itransfer); } -static void windows_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - struct windows_context_priv *priv = _context_priv(ITRANSFER_CTX(itransfer)); - priv->backend->clear_transfer_priv(itransfer); -} - static int windows_handle_events(struct libusb_context *ctx, struct pollfd *fds, POLL_NFDS_TYPE nfds, int num_ready) { struct windows_context_priv *priv = _context_priv(ctx); @@ -810,7 +804,7 @@ const struct usbi_os_backend usbi_backend = { windows_destroy_device, windows_submit_transfer, windows_cancel_transfer, - windows_clear_transfer_priv, + NULL, /* clear_transfer_priv */ windows_handle_events, NULL, /* handle_transfer_completion */ windows_clock_gettime, diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 6cb695c..519fe4a 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 11441 +#define LIBUSB_NANO 11442 -- cgit v1.2.1