summaryrefslogtreecommitdiff
path: root/libusb/os/windows_winusb.h
diff options
context:
space:
mode:
authorChris Dickens <christopher.a.dickens@gmail.com>2018-01-03 23:09:09 -0800
committerChris Dickens <christopher.a.dickens@gmail.com>2018-01-03 23:27:33 -0800
commitc4438b3c7b2e1db0be8d5fe5eab08756367135d6 (patch)
treefc627c4b30159749ef160883965f5d9d42801fbd /libusb/os/windows_winusb.h
parent886e3967685d270e24763839f1780546a351395c (diff)
downloadlibusb-c4438b3c7b2e1db0be8d5fe5eab08756367135d6.tar.gz
Windows: Kill empty functions and switch to runtime checking
Instead of requiring each driver API to provide a complete set of functions, some of which may be simple containers for returning an unsupported error code, allow function pointers to be NULL and return an error when a NULL pointer is encountered. Also remove the unused sub_api parameter from the API init/exit functions. Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/os/windows_winusb.h')
-rw-r--r--libusb/os/windows_winusb.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/libusb/os/windows_winusb.h b/libusb/os/windows_winusb.h
index 3623b96..6a7a909 100644
--- a/libusb/os/windows_winusb.h
+++ b/libusb/os/windows_winusb.h
@@ -92,15 +92,13 @@ const GUID GUID_DEVINTERFACE_LIBUSB0_FILTER = {0xF9F3FF14, 0xAE21, 0x48A0, {0x8A
#define SUB_API_WINUSB 2
#define SUB_API_MAX 3
-#define WINUSBX_DRV_NAMES {"libusbK", "libusb0", "WinUSB"}
-
struct windows_usb_api_backend {
const uint8_t id;
const char *designation;
const char **driver_name_list; // Driver name, without .sys, e.g. "usbccgp"
const uint8_t nb_driver_names;
- int (*init)(int sub_api, struct libusb_context *ctx);
- int (*exit)(int sub_api);
+ int (*init)(struct libusb_context *ctx);
+ void (*exit)(void);
int (*open)(int sub_api, struct libusb_device_handle *dev_handle);
void (*close)(int sub_api, struct libusb_device_handle *dev_handle);
int (*configure_endpoints)(int sub_api, struct libusb_device_handle *dev_handle, int iface);
@@ -120,8 +118,8 @@ struct windows_usb_api_backend {
extern const struct windows_usb_api_backend usb_api_backend[USB_API_MAX];
#define PRINT_UNSUPPORTED_API(fname) \
- usbi_dbg("unsupported API call for '" \
- #fname "' (unrecognized device driver)"); \
+ usbi_dbg("unsupported API call for '%s' " \
+ "(unrecognized device driver)", #fname); \
return LIBUSB_ERROR_NOT_SUPPORTED;
/*