Switch to libusbx

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@303 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
uniederer
2012-12-04 08:27:54 +00:00
parent 33de3f93a5
commit b770ae0ad3
8 changed files with 326 additions and 640 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,9 @@
/*
* Public libusb header file
* Copyright (C) 2007-2008 Daniel Drake <dsd@gentoo.org>
* Copyright (c) 2001 Johannes Erdfelt <johannes@erdfelt.com>
* Public libusbx header file
* Copyright © 2001 Johannes Erdfelt <johannes@erdfelt.com>
* Copyright © 2007-2008 Daniel Drake <dsd@gentoo.org>
* Copyright © 2012 Pete Batard <pete@akeo.ie>
* For more information, please visit: http://libusbx.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -18,12 +20,14 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef __LIBUSB_H__
#define __LIBUSB_H__
#ifndef LIBUSB_H
#define LIBUSB_H
#ifdef _MSC_VER
/* on MS environments, the inline keyword is available in C++ only */
#if !defined(__cplusplus)
#define inline __inline
#endif
/* ssize_t is also not available (copy/paste from MinGW) */
#ifndef _SSIZE_T_DEFINED
#define _SSIZE_T_DEFINED
@@ -40,6 +44,7 @@
#if defined(_MSC_VER) && (_MSC_VER < 1600) && (!defined(_STDINT)) && (!defined(_STDINT_H))
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
#else
#include <stdint.h>
#endif
@@ -53,7 +58,7 @@ typedef unsigned __int16 uint16_t;
#endif
/* 'interface' might be defined as a macro on Windows, so we need to
* undefine it so as not to break the current libusb API, because
* undefine it so as not to break the current libusbx API, because
* libusb_config_descriptor has an 'interface' member
* As this can be problematic if you include windows.h after libusb.h
* in your sources, we force windows.h to be included first. */
@@ -66,14 +71,14 @@ typedef unsigned __int16 uint16_t;
/** \def LIBUSB_CALL
* \ingroup misc
* libusb's Windows calling convention.
* libusbx's Windows calling convention.
*
* Under Windows, the selection of available compilers and configurations
* means that, unlike other platforms, there is not <em>one true calling
* convention</em> (calling convention: the manner in which parameters are
* passed to funcions in the generated assembly code).
*
* Matching the Windows API itself, libusb uses the WINAPI convention (which
* Matching the Windows API itself, libusbx uses the WINAPI convention (which
* translates to the <tt>stdcall</tt> convention) and guarantees that the
* library is compiled in this way. The public header file also includes
* appropriate annotations so that your own software will use the right
@@ -81,7 +86,7 @@ typedef unsigned __int16 uint16_t;
* your codebase.
*
* The one consideration that you must apply in your software is to mark
* all functions which you use as libusb callbacks with this LIBUSB_CALL
* all functions which you use as libusbx callbacks with this LIBUSB_CALL
* annotation, so that they too get compiled for the correct calling
* convention.
*
@@ -89,19 +94,44 @@ typedef unsigned __int16 uint16_t;
* means that you can apply it to your code without worrying about
* cross-platform compatibility.
*/
/* LIBUSB_CALL must be defined on both definition and declaration of libusb
/* LIBUSB_CALL must be defined on both definition and declaration of libusbx
* functions. You'd think that declaration would be enough, but cygwin will
* complain about conflicting types unless both are marked this way.
* The placement of this macro is important too; it must appear after the
* return type, before the function name. See internal documentation for
* API_EXPORTED.
*/
#if defined(_WIN32)
#if defined(_WIN32) || defined(__CYGWIN__)
#define LIBUSB_CALL WINAPI
#else
#define LIBUSB_CALL
#endif
/** \def LIBUSBX_API_VERSION
* \ingroup misc
* libusbx's API version.
*
* Since version 1.0.13, to help with feature detection, libusbx defines
* a LIBUSBX_API_VERSION macro that gets increased every time there is a
* significant change to the API, such as the introduction of a new call,
* the definition of a new macro/enum member, or any other element that
* libusbx applications may want to detect at compilation time.
*
* The macro is typically used in an application as follows:
* \code
* #if defined(LIBUSBX_API_VERSION) && (LIBUSBX_API_VERSION >= 0x01001234)
* // Use one of the newer features from the libusbx API
* #endif
* \endcode
*
* Another feature of LIBUSBX_API_VERSION is that it can be used to detect
* whether you are compiling against the libusb or the libusbx library.
*
* Internally, LIBUSBX_API_VERSION is defined as follows:
* (libusbx major << 24) | (libusbx minor << 16) | (16 bit incremental)
*/
#define LIBUSBX_API_VERSION 0x010000FF
#ifdef __cplusplus
extern "C" {
#endif
@@ -155,11 +185,15 @@ enum libusb_class_code {
/** Human Interface Device class */
LIBUSB_CLASS_HID = 3,
/** Printer dclass */
/** Physical */
LIBUSB_CLASS_PHYSICAL = 5,
/** Printer class */
LIBUSB_CLASS_PRINTER = 7,
/** Picture transfer protocol class */
LIBUSB_CLASS_PTP = 6,
/** Image class */
LIBUSB_CLASS_PTP = 6, /* legacy name from libusb-0.1 usb.h */
LIBUSB_CLASS_IMAGE = 6,
/** Mass storage class */
LIBUSB_CLASS_MASS_STORAGE = 8,
@@ -170,6 +204,21 @@ enum libusb_class_code {
/** Data class */
LIBUSB_CLASS_DATA = 10,
/** Smart Card */
LIBUSB_CLASS_SMART_CARD = 0x0b,
/** Content Security */
LIBUSB_CLASS_CONTENT_SECURITY = 0x0d,
/** Video */
LIBUSB_CLASS_VIDEO = 0x0e,
/** Personal Healthcare */
LIBUSB_CLASS_PERSONAL_HEALTHCARE = 0x0f,
/** Diagnostic Device */
LIBUSB_CLASS_DIAGNOSTIC_DEVICE = 0xdc,
/** Wireless class */
LIBUSB_CLASS_WIRELESS = 0xe0,
@@ -208,7 +257,10 @@ enum libusb_descriptor_type {
LIBUSB_DT_PHYSICAL = 0x23,
/** Hub descriptor */
LIBUSB_DT_HUB = 0x29
LIBUSB_DT_HUB = 0x29,
/** SuperSpeed Hub descriptor */
LIBUSB_DT_SUPERSPEED_HUB = 0x2A,
};
/* Descriptor sizes per descriptor type */
@@ -255,7 +307,7 @@ enum libusb_transfer_type {
};
/** \ingroup misc
* Standard requests, as defined in table 9-3 of the USB2 specifications */
* Standard requests, as defined in table 9-5 of the USB 3.0 specifications */
enum libusb_standard_request {
/** Request status of the specific recipient */
LIBUSB_REQUEST_GET_STATUS = 0x00,
@@ -292,7 +344,14 @@ enum libusb_standard_request {
LIBUSB_REQUEST_SET_INTERFACE = 0x0B,
/** Set then report an endpoint's synchronization frame */
LIBUSB_REQUEST_SYNCH_FRAME = 0x0C
LIBUSB_REQUEST_SYNCH_FRAME = 0x0C,
/** Sets both the U1 and U2 Exit Latency */
LIBUSB_REQUEST_SET_SEL = 0x30,
/** Delay from the time a host transmits a packet to the time it is
* received by the device. */
LIBUSB_SET_ISOCH_DELAY = 0x31,
};
/** \ingroup misc
@@ -328,7 +387,7 @@ enum libusb_request_recipient {
LIBUSB_RECIPIENT_ENDPOINT = 0x02,
/** Other */
LIBUSB_RECIPIENT_OTHER = 0x03
LIBUSB_RECIPIENT_OTHER = 0x03,
};
#define LIBUSB_ISO_SYNC_TYPE_MASK 0x0C
@@ -367,12 +426,12 @@ enum libusb_iso_usage_type {
LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1,
/** Implicit feedback Data endpoint */
LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2
LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2,
};
/** \ingroup desc
* A structure representing the standard USB device descriptor. This
* descriptor is documented in section 9.6.1 of the USB 2.0 specification.
* descriptor is documented in section 9.6.1 of the USB 3.0 specification.
* All multiple-byte fields are represented in host-endian format.
*/
struct libusb_device_descriptor {
@@ -426,7 +485,7 @@ struct libusb_device_descriptor {
/** \ingroup desc
* A structure representing the standard USB endpoint descriptor. This
* descriptor is documented in section 9.6.3 of the USB 2.0 specification.
* descriptor is documented in section 9.6.6 of the USB 3.0 specification.
* All multiple-byte fields are represented in host-endian format.
*/
struct libusb_endpoint_descriptor {
@@ -466,7 +525,7 @@ struct libusb_endpoint_descriptor {
/** For audio devices only: the address if the synch endpoint */
uint8_t bSynchAddress;
/** Extra descriptors. If libusb encounters unknown endpoint descriptors,
/** Extra descriptors. If libusbx encounters unknown endpoint descriptors,
* it will store them here, should you wish to parse them. */
const unsigned char *extra;
@@ -476,7 +535,7 @@ struct libusb_endpoint_descriptor {
/** \ingroup desc
* A structure representing the standard USB interface descriptor. This
* descriptor is documented in section 9.6.5 of the USB 2.0 specification.
* descriptor is documented in section 9.6.5 of the USB 3.0 specification.
* All multiple-byte fields are represented in host-endian format.
*/
struct libusb_interface_descriptor {
@@ -516,7 +575,7 @@ struct libusb_interface_descriptor {
* by the bNumEndpoints field. */
const struct libusb_endpoint_descriptor *endpoint;
/** Extra descriptors. If libusb encounters unknown interface descriptors,
/** Extra descriptors. If libusbx encounters unknown interface descriptors,
* it will store them here, should you wish to parse them. */
const unsigned char *extra;
@@ -538,7 +597,7 @@ struct libusb_interface {
/** \ingroup desc
* A structure representing the standard USB configuration descriptor. This
* descriptor is documented in section 9.6.3 of the USB 2.0 specification.
* descriptor is documented in section 9.6.3 of the USB 3.0 specification.
* All multiple-byte fields are represented in host-endian format.
*/
struct libusb_config_descriptor {
@@ -574,7 +633,7 @@ struct libusb_config_descriptor {
* this array is determined by the bNumInterfaces field. */
const struct libusb_interface *interface;
/** Extra descriptors. If libusb encounters unknown configuration
/** Extra descriptors. If libusbx encounters unknown configuration
* descriptors, it will store them here, should you wish to parse them. */
const unsigned char *extra;
@@ -612,33 +671,46 @@ struct libusb_control_setup {
#define LIBUSB_CONTROL_SETUP_SIZE (sizeof(struct libusb_control_setup))
/* libusb */
/* libusbx */
struct libusb_context;
struct libusb_device;
struct libusb_device_handle;
/** \ingroup lib
* Structure providing the version of libusb being used
* Structure providing the version of the libusbx runtime
*/
struct libusb_version {
uint16_t major;
uint16_t minor;
uint16_t micro;
uint16_t nano;
/** Library major version. */
const uint16_t major;
/** Library minor version. */
const uint16_t minor;
/** Library micro version. */
const uint16_t micro;
/** Library nano version. */
const uint16_t nano;
/** Library release candidate suffix string, e.g. "-rc4". */
const char *rc;
/** For ABI compatibility only. */
const char* describe;
};
/** \ingroup lib
* Structure representing a libusb session. The concept of individual libusb
* Structure representing a libusbx session. The concept of individual libusbx
* sessions allows for your program to use two libraries (or dynamically
* load two modules) which both independently use libusb. This will prevent
* interference between the individual libusb users - for example
* interference between the individual libusbx users - for example
* libusb_set_debug() will not affect the other user of the library, and
* libusb_exit() will not destroy resources that the other user is still
* using.
*
* Sessions are created by libusb_init() and destroyed through libusb_exit().
* If your application is guaranteed to only ever include a single libusb
* If your application is guaranteed to only ever include a single libusbx
* user (i.e. you), you do not have to worry about contexts: pass NULL in
* every function call where a context is required. The default context
* will be used.
@@ -675,12 +747,31 @@ typedef struct libusb_device libusb_device;
*/
typedef struct libusb_device_handle libusb_device_handle;
/** \ingroup dev
* Speed codes. Indicates the speed at which the device is operating.
*/
enum libusb_speed {
/** The OS doesn't report or know the device speed. */
LIBUSB_SPEED_UNKNOWN = 0,
/** The device is operating at low speed (1.5MBit/s). */
LIBUSB_SPEED_LOW = 1,
/** The device is operating at full speed (12MBit/s). */
LIBUSB_SPEED_FULL = 2,
/** The device is operating at high speed (480MBit/s). */
LIBUSB_SPEED_HIGH = 3,
/** The device is operating at super speed (5000MBit/s). */
LIBUSB_SPEED_SUPER = 4,
};
/** \ingroup misc
* Error codes. Most libusb functions return 0 on success or one of these
* Error codes. Most libusbx functions return 0 on success or one of these
* codes on failure.
* You can use libusb_strerror() to retrieve a short string description of
* a libusb_error enumeration value.
* You can call \ref libusb_error_name() to retrieve a string representation
* of an error code.
*/
enum libusb_error {
/** Success (no error) */
@@ -722,11 +813,11 @@ enum libusb_error {
/** Operation not supported or unimplemented on this platform */
LIBUSB_ERROR_NOT_SUPPORTED = -12,
/** Other error */
LIBUSB_ERROR_OTHER = -99
/* NB! Remember to update libusb_error_name()
when adding new error codes here. */
/* IMPORTANT: when adding new values to this enum, remember to
update the libusb_strerror() function implementation! */
/** Other error */
LIBUSB_ERROR_OTHER = -99,
};
/** \ingroup asyncio
@@ -753,7 +844,10 @@ enum libusb_transfer_status {
LIBUSB_TRANSFER_NO_DEVICE,
/** Device sent more data than requested */
LIBUSB_TRANSFER_OVERFLOW
LIBUSB_TRANSFER_OVERFLOW,
/* NB! Remember to update libusb_error_name()
when adding new status codes here. */
};
/** \ingroup asyncio
@@ -769,7 +863,32 @@ enum libusb_transfer_flags {
* If this flag is set, it is illegal to call libusb_free_transfer()
* from your transfer callback, as this will result in a double-free
* when this flag is acted upon. */
LIBUSB_TRANSFER_FREE_TRANSFER = 1<<2
LIBUSB_TRANSFER_FREE_TRANSFER = 1<<2,
/** Terminate transfers that are a multiple of the endpoint's
* wMaxPacketSize with an extra zero length packet. This is useful
* when a device protocol mandates that each logical request is
* terminated by an incomplete packet (i.e. the logical requests are
* not separated by other means).
*
* This flag only affects host-to-device transfers to bulk and interrupt
* endpoints. In other situations, it is ignored.
*
* This flag only affects transfers with a length that is a multiple of
* the endpoint's wMaxPacketSize. On transfers of other lengths, this
* flag has no effect. Therefore, if you are working with a device that
* needs a ZLP whenever the end of the logical request falls on a packet
* boundary, then it is sensible to set this flag on <em>every</em>
* transfer (you do not have to worry about only setting it on transfers
* that end on the boundary).
*
* This flag is currently only supported on Linux.
* On other systems, libusb_submit_transfer() will return
* LIBUSB_ERROR_NOT_SUPPORTED for every transfer where this flag is set.
*
* Available since libusb-1.0.9.
*/
LIBUSB_TRANSFER_ADD_ZERO_PACKET = 1 << 3,
};
/** \ingroup asyncio
@@ -791,7 +910,7 @@ struct libusb_transfer;
* Asynchronous transfer callback function type. When submitting asynchronous
* transfers, you pass a pointer to a callback function of this type via the
* \ref libusb_transfer::callback "callback" member of the libusb_transfer
* structure. libusb will call this function later, when the transfer has
* structure. libusbx will call this function later, when the transfer has
* completed or failed. See \ref asyncio for more information.
* \param transfer The libusb_transfer struct the callback function is being
* notified about.
@@ -862,11 +981,40 @@ struct libusb_transfer {
;
};
/** \ingroup misc
* Capabilities supported by this instance of libusb. Test if the loaded
* library supports a given capability by calling
* \ref libusb_has_capability().
*/
enum libusb_capability {
/** The libusb_has_capability() API is available. */
LIBUSB_CAP_HAS_CAPABILITY = 0,
};
/** \ingroup lib
* Log message levels.
* - LIBUSB_LOG_LEVEL_NONE (0) : no messages ever printed by the library (default)
* - LIBUSB_LOG_LEVEL_ERROR (1) : error messages are printed to stderr
* - LIBUSB_LOG_LEVEL_WARNING (2) : warning and error messages are printed to stderr
* - LIBUSB_LOG_LEVEL_INFO (3) : informational messages are printed to stdout, warning
* and error messages are printed to stderr
* - LIBUSB_LOG_LEVEL_DEBUG (4) : debug and informational messages are printed to stdout,
* warnings and errors to stderr
*/
enum libusb_log_level {
LIBUSB_LOG_LEVEL_NONE = 0,
LIBUSB_LOG_LEVEL_ERROR,
LIBUSB_LOG_LEVEL_WARNING,
LIBUSB_LOG_LEVEL_INFO,
LIBUSB_LOG_LEVEL_DEBUG,
};
int LIBUSB_CALL libusb_init(libusb_context **ctx);
void LIBUSB_CALL libusb_exit(libusb_context *ctx);
void LIBUSB_CALL libusb_set_debug(libusb_context *ctx, int level);
const char * LIBUSB_CALL libusb_strerror(enum libusb_error errcode);
const struct libusb_version * LIBUSB_CALL libusb_getversion(void);
const struct libusb_version * LIBUSB_CALL libusb_get_version(void);
int LIBUSB_CALL libusb_has_capability(uint32_t capability);
const char * LIBUSB_CALL libusb_error_name(int errcode);
ssize_t LIBUSB_CALL libusb_get_device_list(libusb_context *ctx,
libusb_device ***list);
@@ -892,6 +1040,7 @@ uint8_t LIBUSB_CALL libusb_get_port_number(libusb_device *dev);
libusb_device * LIBUSB_CALL libusb_get_parent(libusb_device *dev);
int LIBUSB_CALL libusb_get_port_path(libusb_context *ctx, libusb_device *dev, uint8_t* path, uint8_t path_length);
uint8_t LIBUSB_CALL libusb_get_device_address(libusb_device *dev);
int LIBUSB_CALL libusb_get_device_speed(libusb_device *dev);
int LIBUSB_CALL libusb_get_max_packet_size(libusb_device *dev,
unsigned char endpoint);
int LIBUSB_CALL libusb_get_max_iso_packet_size(libusb_device *dev,
@@ -1276,7 +1425,7 @@ static inline int libusb_get_string_descriptor(libusb_device_handle *dev,
uint8_t desc_index, uint16_t langid, unsigned char *data, int length)
{
return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN,
LIBUSB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_STRING << 8) | desc_index,
LIBUSB_REQUEST_GET_DESCRIPTOR, (uint16_t)((LIBUSB_DT_STRING << 8) | desc_index),
langid, data, (uint16_t) length, 1000);
}
@@ -1296,7 +1445,10 @@ int LIBUSB_CALL libusb_wait_for_event(libusb_context *ctx, struct timeval *tv);
int LIBUSB_CALL libusb_handle_events_timeout(libusb_context *ctx,
struct timeval *tv);
int LIBUSB_CALL libusb_handle_events_timeout_completed(libusb_context *ctx,
struct timeval *tv, int *completed);
int LIBUSB_CALL libusb_handle_events(libusb_context *ctx);
int LIBUSB_CALL libusb_handle_events_completed(libusb_context *ctx, int *completed);
int LIBUSB_CALL libusb_handle_events_locked(libusb_context *ctx,
struct timeval *tv);
int LIBUSB_CALL libusb_pollfds_handle_timeouts(libusb_context *ctx);

View File

@@ -1,592 +1,126 @@
LIBRARY
EXPORTS
libusb_alloc_transfer
libusb_alloc_transfer@0 = libusb_alloc_transfer
libusb_alloc_transfer@12 = libusb_alloc_transfer
libusb_alloc_transfer@16 = libusb_alloc_transfer
libusb_alloc_transfer@20 = libusb_alloc_transfer
libusb_alloc_transfer@24 = libusb_alloc_transfer
libusb_alloc_transfer@28 = libusb_alloc_transfer
libusb_alloc_transfer@32 = libusb_alloc_transfer
libusb_alloc_transfer@4 = libusb_alloc_transfer
libusb_alloc_transfer@8 = libusb_alloc_transfer
libusb_attach_kernel_driver
libusb_attach_kernel_driver@0 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@12 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@16 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@20 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@24 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@28 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@32 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@4 = libusb_attach_kernel_driver
libusb_attach_kernel_driver@8 = libusb_attach_kernel_driver
libusb_bulk_transfer
libusb_bulk_transfer@0 = libusb_bulk_transfer
libusb_bulk_transfer@12 = libusb_bulk_transfer
libusb_bulk_transfer@16 = libusb_bulk_transfer
libusb_bulk_transfer@20 = libusb_bulk_transfer
libusb_bulk_transfer@24 = libusb_bulk_transfer
libusb_bulk_transfer@28 = libusb_bulk_transfer
libusb_bulk_transfer@32 = libusb_bulk_transfer
libusb_bulk_transfer@4 = libusb_bulk_transfer
libusb_bulk_transfer@8 = libusb_bulk_transfer
libusb_cancel_transfer
libusb_cancel_transfer@0 = libusb_cancel_transfer
libusb_cancel_transfer@12 = libusb_cancel_transfer
libusb_cancel_transfer@16 = libusb_cancel_transfer
libusb_cancel_transfer@20 = libusb_cancel_transfer
libusb_cancel_transfer@24 = libusb_cancel_transfer
libusb_cancel_transfer@28 = libusb_cancel_transfer
libusb_cancel_transfer@32 = libusb_cancel_transfer
libusb_cancel_transfer@4 = libusb_cancel_transfer
libusb_cancel_transfer@8 = libusb_cancel_transfer
libusb_claim_interface
libusb_claim_interface@0 = libusb_claim_interface
libusb_claim_interface@12 = libusb_claim_interface
libusb_claim_interface@16 = libusb_claim_interface
libusb_claim_interface@20 = libusb_claim_interface
libusb_claim_interface@24 = libusb_claim_interface
libusb_claim_interface@28 = libusb_claim_interface
libusb_claim_interface@32 = libusb_claim_interface
libusb_claim_interface@4 = libusb_claim_interface
libusb_claim_interface@8 = libusb_claim_interface
libusb_clear_halt
libusb_clear_halt@0 = libusb_clear_halt
libusb_clear_halt@12 = libusb_clear_halt
libusb_clear_halt@16 = libusb_clear_halt
libusb_clear_halt@20 = libusb_clear_halt
libusb_clear_halt@24 = libusb_clear_halt
libusb_clear_halt@28 = libusb_clear_halt
libusb_clear_halt@32 = libusb_clear_halt
libusb_clear_halt@4 = libusb_clear_halt
libusb_clear_halt@8 = libusb_clear_halt
libusb_close
libusb_close@0 = libusb_close
libusb_close@12 = libusb_close
libusb_close@16 = libusb_close
libusb_close@20 = libusb_close
libusb_close@24 = libusb_close
libusb_close@28 = libusb_close
libusb_close@32 = libusb_close
libusb_close@4 = libusb_close
libusb_close@8 = libusb_close
libusb_control_transfer
libusb_control_transfer@0 = libusb_control_transfer
libusb_control_transfer@12 = libusb_control_transfer
libusb_control_transfer@16 = libusb_control_transfer
libusb_control_transfer@20 = libusb_control_transfer
libusb_control_transfer@24 = libusb_control_transfer
libusb_control_transfer@28 = libusb_control_transfer
libusb_control_transfer@32 = libusb_control_transfer
libusb_control_transfer@4 = libusb_control_transfer
libusb_control_transfer@8 = libusb_control_transfer
libusb_detach_kernel_driver
libusb_detach_kernel_driver@0 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@12 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@16 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@20 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@24 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@28 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@32 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@4 = libusb_detach_kernel_driver
libusb_detach_kernel_driver@8 = libusb_detach_kernel_driver
libusb_event_handler_active
libusb_event_handler_active@0 = libusb_event_handler_active
libusb_event_handler_active@12 = libusb_event_handler_active
libusb_event_handler_active@16 = libusb_event_handler_active
libusb_event_handler_active@20 = libusb_event_handler_active
libusb_event_handler_active@24 = libusb_event_handler_active
libusb_event_handler_active@28 = libusb_event_handler_active
libusb_event_handler_active@32 = libusb_event_handler_active
libusb_event_handler_active@4 = libusb_event_handler_active
libusb_event_handler_active@8 = libusb_event_handler_active
libusb_event_handling_ok
libusb_event_handling_ok@0 = libusb_event_handling_ok
libusb_event_handling_ok@12 = libusb_event_handling_ok
libusb_event_handling_ok@16 = libusb_event_handling_ok
libusb_event_handling_ok@20 = libusb_event_handling_ok
libusb_event_handling_ok@24 = libusb_event_handling_ok
libusb_event_handling_ok@28 = libusb_event_handling_ok
libusb_event_handling_ok@32 = libusb_event_handling_ok
libusb_event_handling_ok@4 = libusb_event_handling_ok
libusb_event_handling_ok@8 = libusb_event_handling_ok
libusb_exit
libusb_exit@0 = libusb_exit
libusb_exit@12 = libusb_exit
libusb_exit@16 = libusb_exit
libusb_exit@20 = libusb_exit
libusb_exit@24 = libusb_exit
libusb_exit@28 = libusb_exit
libusb_exit@32 = libusb_exit
libusb_exit@4 = libusb_exit
libusb_exit@8 = libusb_exit
libusb_free_config_descriptor
libusb_free_config_descriptor@0 = libusb_free_config_descriptor
libusb_free_config_descriptor@12 = libusb_free_config_descriptor
libusb_free_config_descriptor@16 = libusb_free_config_descriptor
libusb_free_config_descriptor@20 = libusb_free_config_descriptor
libusb_free_config_descriptor@24 = libusb_free_config_descriptor
libusb_free_config_descriptor@28 = libusb_free_config_descriptor
libusb_free_config_descriptor@32 = libusb_free_config_descriptor
libusb_free_config_descriptor@4 = libusb_free_config_descriptor
libusb_free_config_descriptor@8 = libusb_free_config_descriptor
libusb_free_device_list
libusb_free_device_list@0 = libusb_free_device_list
libusb_free_device_list@12 = libusb_free_device_list
libusb_free_device_list@16 = libusb_free_device_list
libusb_free_device_list@20 = libusb_free_device_list
libusb_free_device_list@24 = libusb_free_device_list
libusb_free_device_list@28 = libusb_free_device_list
libusb_free_device_list@32 = libusb_free_device_list
libusb_free_device_list@4 = libusb_free_device_list
libusb_free_device_list@8 = libusb_free_device_list
libusb_free_transfer
libusb_free_transfer@0 = libusb_free_transfer
libusb_free_transfer@12 = libusb_free_transfer
libusb_free_transfer@16 = libusb_free_transfer
libusb_free_transfer@20 = libusb_free_transfer
libusb_free_transfer@24 = libusb_free_transfer
libusb_free_transfer@28 = libusb_free_transfer
libusb_free_transfer@32 = libusb_free_transfer
libusb_free_transfer@4 = libusb_free_transfer
libusb_free_transfer@8 = libusb_free_transfer
libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@0 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@12 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@16 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@20 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@24 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@28 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@32 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@4 = libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@8 = libusb_get_active_config_descriptor
libusb_get_bus_number
libusb_get_bus_number@0 = libusb_get_bus_number
libusb_get_bus_number@12 = libusb_get_bus_number
libusb_get_bus_number@16 = libusb_get_bus_number
libusb_get_bus_number@20 = libusb_get_bus_number
libusb_get_bus_number@24 = libusb_get_bus_number
libusb_get_bus_number@28 = libusb_get_bus_number
libusb_get_bus_number@32 = libusb_get_bus_number
libusb_get_bus_number@4 = libusb_get_bus_number
libusb_get_bus_number@8 = libusb_get_bus_number
libusb_get_config_descriptor
libusb_get_config_descriptor@0 = libusb_get_config_descriptor
libusb_get_config_descriptor@12 = libusb_get_config_descriptor
libusb_get_config_descriptor@16 = libusb_get_config_descriptor
libusb_get_config_descriptor@20 = libusb_get_config_descriptor
libusb_get_config_descriptor@24 = libusb_get_config_descriptor
libusb_get_config_descriptor@28 = libusb_get_config_descriptor
libusb_get_config_descriptor@32 = libusb_get_config_descriptor
libusb_get_config_descriptor@4 = libusb_get_config_descriptor
libusb_get_config_descriptor@8 = libusb_get_config_descriptor
libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@0 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@12 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@16 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@20 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@24 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@28 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@32 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@4 = libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@8 = libusb_get_config_descriptor_by_value
libusb_get_configuration
libusb_get_configuration@0 = libusb_get_configuration
libusb_get_configuration@12 = libusb_get_configuration
libusb_get_configuration@16 = libusb_get_configuration
libusb_get_configuration@20 = libusb_get_configuration
libusb_get_configuration@24 = libusb_get_configuration
libusb_get_configuration@28 = libusb_get_configuration
libusb_get_configuration@32 = libusb_get_configuration
libusb_get_configuration@4 = libusb_get_configuration
libusb_get_configuration@8 = libusb_get_configuration
libusb_get_device
libusb_get_device@0 = libusb_get_device
libusb_get_device@12 = libusb_get_device
libusb_get_device@16 = libusb_get_device
libusb_get_device@20 = libusb_get_device
libusb_get_device@24 = libusb_get_device
libusb_get_device@28 = libusb_get_device
libusb_get_device@32 = libusb_get_device
libusb_get_device@4 = libusb_get_device
libusb_get_device@8 = libusb_get_device
libusb_get_device_address
libusb_get_device_address@0 = libusb_get_device_address
libusb_get_device_address@12 = libusb_get_device_address
libusb_get_device_address@16 = libusb_get_device_address
libusb_get_device_address@20 = libusb_get_device_address
libusb_get_device_address@24 = libusb_get_device_address
libusb_get_device_address@28 = libusb_get_device_address
libusb_get_device_address@32 = libusb_get_device_address
libusb_get_device_address@4 = libusb_get_device_address
libusb_get_device_address@8 = libusb_get_device_address
libusb_get_device_descriptor
libusb_get_device_descriptor@0 = libusb_get_device_descriptor
libusb_get_device_descriptor@12 = libusb_get_device_descriptor
libusb_get_device_descriptor@16 = libusb_get_device_descriptor
libusb_get_device_descriptor@20 = libusb_get_device_descriptor
libusb_get_device_descriptor@24 = libusb_get_device_descriptor
libusb_get_device_descriptor@28 = libusb_get_device_descriptor
libusb_get_device_descriptor@32 = libusb_get_device_descriptor
libusb_get_device_descriptor@4 = libusb_get_device_descriptor
libusb_get_device_descriptor@8 = libusb_get_device_descriptor
libusb_get_device_list
libusb_get_device_list@0 = libusb_get_device_list
libusb_get_device_list@12 = libusb_get_device_list
libusb_get_device_list@16 = libusb_get_device_list
libusb_get_device_list@20 = libusb_get_device_list
libusb_get_device_list@24 = libusb_get_device_list
libusb_get_device_list@28 = libusb_get_device_list
libusb_get_device_list@32 = libusb_get_device_list
libusb_get_device_list@4 = libusb_get_device_list
libusb_get_device_list@8 = libusb_get_device_list
libusb_get_device_speed
libusb_get_device_speed@0 = libusb_get_device_speed
libusb_get_device_speed@12 = libusb_get_device_speed
libusb_get_device_speed@16 = libusb_get_device_speed
libusb_get_device_speed@20 = libusb_get_device_speed
libusb_get_device_speed@24 = libusb_get_device_speed
libusb_get_device_speed@28 = libusb_get_device_speed
libusb_get_device_speed@32 = libusb_get_device_speed
libusb_get_device_speed@4 = libusb_get_device_speed
libusb_get_device_speed@8 = libusb_get_device_speed
libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@0 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@12 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@16 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@20 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@24 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@28 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@32 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@4 = libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@8 = libusb_get_max_iso_packet_size
libusb_get_max_packet_size
libusb_get_max_packet_size@0 = libusb_get_max_packet_size
libusb_get_max_packet_size@12 = libusb_get_max_packet_size
libusb_get_max_packet_size@16 = libusb_get_max_packet_size
libusb_get_max_packet_size@20 = libusb_get_max_packet_size
libusb_get_max_packet_size@24 = libusb_get_max_packet_size
libusb_get_max_packet_size@28 = libusb_get_max_packet_size
libusb_get_max_packet_size@32 = libusb_get_max_packet_size
libusb_get_max_packet_size@4 = libusb_get_max_packet_size
libusb_get_max_packet_size@8 = libusb_get_max_packet_size
libusb_get_next_timeout
libusb_get_next_timeout@0 = libusb_get_next_timeout
libusb_get_next_timeout@12 = libusb_get_next_timeout
libusb_get_next_timeout@16 = libusb_get_next_timeout
libusb_get_next_timeout@20 = libusb_get_next_timeout
libusb_get_next_timeout@24 = libusb_get_next_timeout
libusb_get_next_timeout@28 = libusb_get_next_timeout
libusb_get_next_timeout@32 = libusb_get_next_timeout
libusb_get_next_timeout@4 = libusb_get_next_timeout
libusb_get_next_timeout@8 = libusb_get_next_timeout
libusb_get_parent
libusb_get_parent@0 = libusb_get_parent
libusb_get_parent@12 = libusb_get_parent
libusb_get_parent@16 = libusb_get_parent
libusb_get_parent@20 = libusb_get_parent
libusb_get_parent@24 = libusb_get_parent
libusb_get_parent@28 = libusb_get_parent
libusb_get_parent@32 = libusb_get_parent
libusb_get_parent@4 = libusb_get_parent
libusb_get_parent@8 = libusb_get_parent
libusb_get_pollfds
libusb_get_pollfds@0 = libusb_get_pollfds
libusb_get_pollfds@12 = libusb_get_pollfds
libusb_get_pollfds@16 = libusb_get_pollfds
libusb_get_pollfds@20 = libusb_get_pollfds
libusb_get_pollfds@24 = libusb_get_pollfds
libusb_get_pollfds@28 = libusb_get_pollfds
libusb_get_pollfds@32 = libusb_get_pollfds
libusb_get_pollfds@4 = libusb_get_pollfds
libusb_get_pollfds@8 = libusb_get_pollfds
libusb_get_port_number
libusb_get_port_number@0 = libusb_get_port_number
libusb_get_port_number@12 = libusb_get_port_number
libusb_get_port_number@16 = libusb_get_port_number
libusb_get_port_number@20 = libusb_get_port_number
libusb_get_port_number@24 = libusb_get_port_number
libusb_get_port_number@28 = libusb_get_port_number
libusb_get_port_number@32 = libusb_get_port_number
libusb_get_port_number@4 = libusb_get_port_number
libusb_get_port_number@8 = libusb_get_port_number
libusb_get_port_path
libusb_get_port_path@0 = libusb_get_port_path
libusb_get_port_path@12 = libusb_get_port_path
libusb_get_port_path@16 = libusb_get_port_path
libusb_get_port_path@20 = libusb_get_port_path
libusb_get_port_path@24 = libusb_get_port_path
libusb_get_port_path@28 = libusb_get_port_path
libusb_get_port_path@32 = libusb_get_port_path
libusb_get_port_path@4 = libusb_get_port_path
libusb_get_port_path@8 = libusb_get_port_path
libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@0 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@12 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@16 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@20 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@24 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@28 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@32 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@4 = libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@8 = libusb_get_string_descriptor_ascii
libusb_getversion
libusb_getversion@0 = libusb_getversion
libusb_getversion@12 = libusb_getversion
libusb_getversion@16 = libusb_getversion
libusb_getversion@20 = libusb_getversion
libusb_getversion@24 = libusb_getversion
libusb_getversion@28 = libusb_getversion
libusb_getversion@32 = libusb_getversion
libusb_getversion@4 = libusb_getversion
libusb_getversion@8 = libusb_getversion
libusb_handle_events
libusb_handle_events@0 = libusb_handle_events
libusb_handle_events@12 = libusb_handle_events
libusb_handle_events@16 = libusb_handle_events
libusb_handle_events@20 = libusb_handle_events
libusb_handle_events@24 = libusb_handle_events
libusb_handle_events@28 = libusb_handle_events
libusb_handle_events@32 = libusb_handle_events
libusb_handle_events@4 = libusb_handle_events
libusb_handle_events@8 = libusb_handle_events
libusb_handle_events_locked
libusb_handle_events_locked@0 = libusb_handle_events_locked
libusb_handle_events_locked@12 = libusb_handle_events_locked
libusb_handle_events_locked@16 = libusb_handle_events_locked
libusb_handle_events_locked@20 = libusb_handle_events_locked
libusb_handle_events_locked@24 = libusb_handle_events_locked
libusb_handle_events_locked@28 = libusb_handle_events_locked
libusb_handle_events_locked@32 = libusb_handle_events_locked
libusb_handle_events_locked@4 = libusb_handle_events_locked
libusb_handle_events_locked@8 = libusb_handle_events_locked
libusb_handle_events_timeout
libusb_handle_events_timeout@0 = libusb_handle_events_timeout
libusb_handle_events_timeout@12 = libusb_handle_events_timeout
libusb_handle_events_timeout@16 = libusb_handle_events_timeout
libusb_handle_events_timeout@20 = libusb_handle_events_timeout
libusb_handle_events_timeout@24 = libusb_handle_events_timeout
libusb_handle_events_timeout@28 = libusb_handle_events_timeout
libusb_handle_events_timeout@32 = libusb_handle_events_timeout
libusb_handle_events_timeout@4 = libusb_handle_events_timeout
libusb_handle_events_timeout@8 = libusb_handle_events_timeout
libusb_init
libusb_init@0 = libusb_init
libusb_init@12 = libusb_init
libusb_init@16 = libusb_init
libusb_init@20 = libusb_init
libusb_init@24 = libusb_init
libusb_init@28 = libusb_init
libusb_init@32 = libusb_init
libusb_init@4 = libusb_init
libusb_init@8 = libusb_init
libusb_interrupt_transfer
libusb_interrupt_transfer@0 = libusb_interrupt_transfer
libusb_interrupt_transfer@12 = libusb_interrupt_transfer
libusb_interrupt_transfer@16 = libusb_interrupt_transfer
libusb_interrupt_transfer@20 = libusb_interrupt_transfer
libusb_interrupt_transfer@24 = libusb_interrupt_transfer
libusb_interrupt_transfer@28 = libusb_interrupt_transfer
libusb_interrupt_transfer@32 = libusb_interrupt_transfer
libusb_interrupt_transfer@4 = libusb_interrupt_transfer
libusb_interrupt_transfer@8 = libusb_interrupt_transfer
libusb_kernel_driver_active
libusb_kernel_driver_active@0 = libusb_kernel_driver_active
libusb_kernel_driver_active@12 = libusb_kernel_driver_active
libusb_kernel_driver_active@16 = libusb_kernel_driver_active
libusb_kernel_driver_active@20 = libusb_kernel_driver_active
libusb_kernel_driver_active@24 = libusb_kernel_driver_active
libusb_kernel_driver_active@28 = libusb_kernel_driver_active
libusb_kernel_driver_active@32 = libusb_kernel_driver_active
libusb_kernel_driver_active@4 = libusb_kernel_driver_active
libusb_kernel_driver_active@8 = libusb_kernel_driver_active
libusb_lock_event_waiters
libusb_lock_event_waiters@0 = libusb_lock_event_waiters
libusb_lock_event_waiters@12 = libusb_lock_event_waiters
libusb_lock_event_waiters@16 = libusb_lock_event_waiters
libusb_lock_event_waiters@20 = libusb_lock_event_waiters
libusb_lock_event_waiters@24 = libusb_lock_event_waiters
libusb_lock_event_waiters@28 = libusb_lock_event_waiters
libusb_lock_event_waiters@32 = libusb_lock_event_waiters
libusb_lock_event_waiters@4 = libusb_lock_event_waiters
libusb_lock_event_waiters@8 = libusb_lock_event_waiters
libusb_lock_events
libusb_lock_events@0 = libusb_lock_events
libusb_lock_events@12 = libusb_lock_events
libusb_lock_events@16 = libusb_lock_events
libusb_lock_events@20 = libusb_lock_events
libusb_lock_events@24 = libusb_lock_events
libusb_lock_events@28 = libusb_lock_events
libusb_lock_events@32 = libusb_lock_events
libusb_lock_events@4 = libusb_lock_events
libusb_lock_events@8 = libusb_lock_events
libusb_open
libusb_open@0 = libusb_open
libusb_open@12 = libusb_open
libusb_open@16 = libusb_open
libusb_open@20 = libusb_open
libusb_open@24 = libusb_open
libusb_open@28 = libusb_open
libusb_open@32 = libusb_open
libusb_open@4 = libusb_open
libusb_open@8 = libusb_open
libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@0 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@12 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@16 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@20 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@24 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@28 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@32 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@4 = libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@8 = libusb_open_device_with_vid_pid
libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@0 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@12 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@16 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@20 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@24 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@28 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@32 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@4 = libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@8 = libusb_pollfds_handle_timeouts
libusb_ref_device
libusb_ref_device@0 = libusb_ref_device
libusb_ref_device@12 = libusb_ref_device
libusb_ref_device@16 = libusb_ref_device
libusb_ref_device@20 = libusb_ref_device
libusb_ref_device@24 = libusb_ref_device
libusb_ref_device@28 = libusb_ref_device
libusb_ref_device@32 = libusb_ref_device
libusb_ref_device@4 = libusb_ref_device
libusb_ref_device@8 = libusb_ref_device
libusb_release_interface
libusb_release_interface@0 = libusb_release_interface
libusb_release_interface@12 = libusb_release_interface
libusb_release_interface@16 = libusb_release_interface
libusb_release_interface@20 = libusb_release_interface
libusb_release_interface@24 = libusb_release_interface
libusb_release_interface@28 = libusb_release_interface
libusb_release_interface@32 = libusb_release_interface
libusb_release_interface@4 = libusb_release_interface
libusb_release_interface@8 = libusb_release_interface
libusb_reset_device
libusb_reset_device@0 = libusb_reset_device
libusb_reset_device@12 = libusb_reset_device
libusb_reset_device@16 = libusb_reset_device
libusb_reset_device@20 = libusb_reset_device
libusb_reset_device@24 = libusb_reset_device
libusb_reset_device@28 = libusb_reset_device
libusb_reset_device@32 = libusb_reset_device
libusb_reset_device@4 = libusb_reset_device
libusb_reset_device@8 = libusb_reset_device
libusb_set_configuration
libusb_set_configuration@0 = libusb_set_configuration
libusb_set_configuration@12 = libusb_set_configuration
libusb_set_configuration@16 = libusb_set_configuration
libusb_set_configuration@20 = libusb_set_configuration
libusb_set_configuration@24 = libusb_set_configuration
libusb_set_configuration@28 = libusb_set_configuration
libusb_set_configuration@32 = libusb_set_configuration
libusb_set_configuration@4 = libusb_set_configuration
libusb_set_configuration@8 = libusb_set_configuration
libusb_set_debug
libusb_set_debug@0 = libusb_set_debug
libusb_set_debug@12 = libusb_set_debug
libusb_set_debug@16 = libusb_set_debug
libusb_set_debug@20 = libusb_set_debug
libusb_set_debug@24 = libusb_set_debug
libusb_set_debug@28 = libusb_set_debug
libusb_set_debug@32 = libusb_set_debug
libusb_set_debug@4 = libusb_set_debug
libusb_set_debug@8 = libusb_set_debug
libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@0 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@12 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@16 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@20 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@24 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@28 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@32 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@4 = libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@8 = libusb_set_interface_alt_setting
libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@0 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@12 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@16 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@20 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@24 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@28 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@32 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@4 = libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@8 = libusb_set_pollfd_notifiers
libusb_strerror
libusb_strerror@0 = libusb_strerror
libusb_strerror@12 = libusb_strerror
libusb_strerror@16 = libusb_strerror
libusb_strerror@20 = libusb_strerror
libusb_strerror@24 = libusb_strerror
libusb_strerror@28 = libusb_strerror
libusb_strerror@32 = libusb_strerror
libusb_strerror@4 = libusb_strerror
libusb_strerror@8 = libusb_strerror
libusb_submit_transfer
libusb_submit_transfer@0 = libusb_submit_transfer
libusb_submit_transfer@12 = libusb_submit_transfer
libusb_submit_transfer@16 = libusb_submit_transfer
libusb_submit_transfer@20 = libusb_submit_transfer
libusb_submit_transfer@24 = libusb_submit_transfer
libusb_submit_transfer@28 = libusb_submit_transfer
libusb_submit_transfer@32 = libusb_submit_transfer
libusb_submit_transfer@4 = libusb_submit_transfer
libusb_submit_transfer@8 = libusb_submit_transfer
libusb_try_lock_events
libusb_try_lock_events@0 = libusb_try_lock_events
libusb_try_lock_events@12 = libusb_try_lock_events
libusb_try_lock_events@16 = libusb_try_lock_events
libusb_try_lock_events@20 = libusb_try_lock_events
libusb_try_lock_events@24 = libusb_try_lock_events
libusb_try_lock_events@28 = libusb_try_lock_events
libusb_try_lock_events@32 = libusb_try_lock_events
libusb_try_lock_events@4 = libusb_try_lock_events
libusb_try_lock_events@8 = libusb_try_lock_events
libusb_unlock_event_waiters
libusb_unlock_event_waiters@0 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@12 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@16 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@20 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@24 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@28 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@32 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@4 = libusb_unlock_event_waiters
libusb_unlock_event_waiters@8 = libusb_unlock_event_waiters
libusb_unlock_events
libusb_unlock_events@0 = libusb_unlock_events
libusb_unlock_events@12 = libusb_unlock_events
libusb_unlock_events@16 = libusb_unlock_events
libusb_unlock_events@20 = libusb_unlock_events
libusb_unlock_events@24 = libusb_unlock_events
libusb_unlock_events@28 = libusb_unlock_events
libusb_unlock_events@32 = libusb_unlock_events
libusb_unlock_events@4 = libusb_unlock_events
libusb_unlock_events@8 = libusb_unlock_events
libusb_unref_device
libusb_unref_device@0 = libusb_unref_device
libusb_unref_device@12 = libusb_unref_device
libusb_unref_device@16 = libusb_unref_device
libusb_unref_device@20 = libusb_unref_device
libusb_unref_device@24 = libusb_unref_device
libusb_unref_device@28 = libusb_unref_device
libusb_unref_device@32 = libusb_unref_device
libusb_unref_device@4 = libusb_unref_device
libusb_unref_device@8 = libusb_unref_device
libusb_wait_for_event
libusb_wait_for_event@0 = libusb_wait_for_event
libusb_wait_for_event@12 = libusb_wait_for_event
libusb_wait_for_event@16 = libusb_wait_for_event
libusb_wait_for_event@20 = libusb_wait_for_event
libusb_wait_for_event@24 = libusb_wait_for_event
libusb_wait_for_event@28 = libusb_wait_for_event
libusb_wait_for_event@32 = libusb_wait_for_event
libusb_wait_for_event@4 = libusb_wait_for_event
libusb_wait_for_event@8 = libusb_wait_for_event
LIBRARY "libusb-1.0.dll"
EXPORTS
libusb_alloc_transfer
libusb_alloc_transfer@4 = libusb_alloc_transfer
libusb_attach_kernel_driver
libusb_attach_kernel_driver@8 = libusb_attach_kernel_driver
libusb_bulk_transfer
libusb_bulk_transfer@24 = libusb_bulk_transfer
libusb_cancel_transfer
libusb_cancel_transfer@4 = libusb_cancel_transfer
libusb_claim_interface
libusb_claim_interface@8 = libusb_claim_interface
libusb_clear_halt
libusb_clear_halt@8 = libusb_clear_halt
libusb_close
libusb_close@4 = libusb_close
libusb_control_transfer
libusb_control_transfer@32 = libusb_control_transfer
libusb_detach_kernel_driver
libusb_detach_kernel_driver@8 = libusb_detach_kernel_driver
libusb_error_name
libusb_error_name@4 = libusb_error_name
libusb_event_handler_active
libusb_event_handler_active@4 = libusb_event_handler_active
libusb_event_handling_ok
libusb_event_handling_ok@4 = libusb_event_handling_ok
libusb_exit
libusb_exit@4 = libusb_exit
libusb_free_config_descriptor
libusb_free_config_descriptor@4 = libusb_free_config_descriptor
libusb_free_device_list
libusb_free_device_list@8 = libusb_free_device_list
libusb_free_transfer
libusb_free_transfer@4 = libusb_free_transfer
libusb_get_active_config_descriptor
libusb_get_active_config_descriptor@8 = libusb_get_active_config_descriptor
libusb_get_bus_number
libusb_get_bus_number@4 = libusb_get_bus_number
libusb_get_config_descriptor
libusb_get_config_descriptor@12 = libusb_get_config_descriptor
libusb_get_config_descriptor_by_value
libusb_get_config_descriptor_by_value@12 = libusb_get_config_descriptor_by_value
libusb_get_configuration
libusb_get_configuration@8 = libusb_get_configuration
libusb_get_device
libusb_get_device@4 = libusb_get_device
libusb_get_device_address
libusb_get_device_address@4 = libusb_get_device_address
libusb_get_device_descriptor
libusb_get_device_descriptor@8 = libusb_get_device_descriptor
libusb_get_device_list
libusb_get_device_list@8 = libusb_get_device_list
libusb_get_device_speed
libusb_get_device_speed@4 = libusb_get_device_speed
libusb_get_max_iso_packet_size
libusb_get_max_iso_packet_size@8 = libusb_get_max_iso_packet_size
libusb_get_max_packet_size
libusb_get_max_packet_size@8 = libusb_get_max_packet_size
libusb_get_next_timeout
libusb_get_next_timeout@8 = libusb_get_next_timeout
libusb_get_parent
libusb_get_parent@4 = libusb_get_parent
libusb_get_pollfds
libusb_get_pollfds@4 = libusb_get_pollfds
libusb_get_port_number
libusb_get_port_number@4 = libusb_get_port_number
libusb_get_port_path
libusb_get_port_path@16 = libusb_get_port_path
libusb_get_string_descriptor_ascii
libusb_get_string_descriptor_ascii@16 = libusb_get_string_descriptor_ascii
libusb_get_version
libusb_get_version@0 = libusb_get_version
libusb_handle_events
libusb_handle_events@4 = libusb_handle_events
libusb_handle_events_completed
libusb_handle_events_completed@8 = libusb_handle_events_completed
libusb_handle_events_locked
libusb_handle_events_locked@8 = libusb_handle_events_locked
libusb_handle_events_timeout
libusb_handle_events_timeout@8 = libusb_handle_events_timeout
libusb_handle_events_timeout_completed
libusb_handle_events_timeout_completed@12 = libusb_handle_events_timeout_completed
libusb_has_capability
libusb_has_capability@4 = libusb_has_capability
libusb_init
libusb_init@4 = libusb_init
libusb_interrupt_transfer
libusb_interrupt_transfer@24 = libusb_interrupt_transfer
libusb_kernel_driver_active
libusb_kernel_driver_active@8 = libusb_kernel_driver_active
libusb_lock_event_waiters
libusb_lock_event_waiters@4 = libusb_lock_event_waiters
libusb_lock_events
libusb_lock_events@4 = libusb_lock_events
libusb_open
libusb_open@8 = libusb_open
libusb_open_device_with_vid_pid
libusb_open_device_with_vid_pid@12 = libusb_open_device_with_vid_pid
libusb_pollfds_handle_timeouts
libusb_pollfds_handle_timeouts@4 = libusb_pollfds_handle_timeouts
libusb_ref_device
libusb_ref_device@4 = libusb_ref_device
libusb_release_interface
libusb_release_interface@8 = libusb_release_interface
libusb_reset_device
libusb_reset_device@4 = libusb_reset_device
libusb_set_configuration
libusb_set_configuration@8 = libusb_set_configuration
libusb_set_debug
libusb_set_debug@8 = libusb_set_debug
libusb_set_interface_alt_setting
libusb_set_interface_alt_setting@12 = libusb_set_interface_alt_setting
libusb_set_pollfd_notifiers
libusb_set_pollfd_notifiers@16 = libusb_set_pollfd_notifiers
libusb_submit_transfer
libusb_submit_transfer@4 = libusb_submit_transfer
libusb_try_lock_events
libusb_try_lock_events@4 = libusb_try_lock_events
libusb_unlock_event_waiters
libusb_unlock_event_waiters@4 = libusb_unlock_event_waiters
libusb_unlock_events
libusb_unlock_events@4 = libusb_unlock_events
libusb_unref_device
libusb_unref_device@4 = libusb_unref_device
libusb_wait_for_event
libusb_wait_for_event@8 = libusb_wait_for_event