err_backend_exit:
if (usbi_backend.exit)
- usbi_backend.exit();
+ usbi_backend.exit(ctx);
err_free_ctx:
if (ctx == usbi_default_context) {
usbi_default_context = NULL;
usbi_io_exit(ctx);
if (usbi_backend.exit)
- usbi_backend.exit();
+ usbi_backend.exit(ctx);
usbi_mutex_destroy(&ctx->open_devs_lock);
usbi_mutex_destroy(&ctx->usb_devs_lock);
*
* This function is called when the user deinitializes the library.
*/
- void (*exit)(void);
+ void (*exit)(struct libusb_contex *ctx);
/* Enumerate all the USB devices on the system, returning them in a list
* of discovered devices.
return rc;
}
-static void darwin_exit (void) {
+static void darwin_exit (struct libusb_context *ctx) {
+ UNUSED(ctx);
if (libusb_darwin_atomic_fetch_add (&initCount, -1) == 1) {
#if !OSX_USE_CLOCK_GETTIME
mach_port_deallocate(mach_task_self(), clock_realtime);
}
static void
-haiku_exit(void)
+haiku_exit(struct libusb_context *ctx)
{
+ UNUSED(ctx);
if (atomic_add(&gInitCount, -1) == 1)
gUsbRoster.Stop();
}
return r;
}
-static void op_exit(void)
+static void op_exit(struct libusb_context *ctx)
{
+ UNUSED(ctx);
usbi_mutex_static_lock(&linux_hotplug_startstop_lock);
assert(init_count != 0);
if (!--init_count) {
* Backend functions
*/
static int sunos_init(struct libusb_context *);
-static void sunos_exit(void);
+static void sunos_exit(struct libusb_context *);
static int sunos_get_device_list(struct libusb_context *,
struct discovered_devs **);
static int sunos_open(struct libusb_device_handle *);
return (LIBUSB_SUCCESS);
}
-static void sunos_exit(void)
+static void sunos_exit(struct libusb_context *ctx)
{
usbi_dbg("");
}
return r;
}
-static void wince_exit(void)
+static void wince_exit(struct libusb_context *ctx)
{
HANDLE semaphore;
TCHAR sem_name[11 + 8 + 1]; // strlen("libusb_init") + (32-bit hex PID) + '\0'
+ UNUSED(ctx);
_stprintf(sem_name, _T("libusb_init%08X"), (unsigned int)(GetCurrentProcessId() & 0xFFFFFFFF));
semaphore = CreateSemaphore(NULL, 1, 1, sem_name);
return r;
}
-static void usbdk_exit(void)
+static void usbdk_exit(struct libusb_context *ctx)
{
+ UNUSED(ctx);
if (--concurrent_usage < 0) {
windows_common_exit();
exit_polling();
/*
* exit: libusb backend deinitialization function
*/
-static void windows_exit(void)
+static void windows_exit(struct libusb_context *ctx)
{
int i;
HANDLE semaphore;
char sem_name[11 + 8 + 1]; // strlen("libusb_init") + (32-bit hex PID) + '\0'
+ UNUSED(ctx);
sprintf(sem_name, "libusb_init%08X", (unsigned int)(GetCurrentProcessId() & 0xFFFFFFFF));
semaphore = CreateSemaphoreA(NULL, 1, 1, sem_name);
-#define LIBUSB_NANO 11211
+#define LIBUSB_NANO 11212