diff options
Diffstat (limited to 'libusb/os/windows_winusb.c')
-rw-r--r-- | libusb/os/windows_winusb.c | 58 |
1 files changed, 54 insertions, 4 deletions
diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c index 0279536..efc3f99 100644 --- a/libusb/os/windows_winusb.c +++ b/libusb/os/windows_winusb.c @@ -673,6 +673,8 @@ static void winusb_exit(struct libusb_context *ctx) { int i; + UNUSED(ctx); + for (i = 0; i < USB_API_MAX; i++) { if (usb_api_backend[i].exit) usb_api_backend[i].exit(); @@ -990,8 +992,8 @@ static int enumerate_hcd_root_hub(struct libusb_context *ctx, const char *dev_id } // Returns the api type, or 0 if not found/unsupported -static void get_api_type(struct libusb_context *ctx, HDEVINFO *dev_info, - SP_DEVINFO_DATA *dev_info_data, int *api, int *sub_api) +static void get_api_type(HDEVINFO *dev_info, SP_DEVINFO_DATA *dev_info_data, + int *api, int *sub_api) { // Precedence for filter drivers vs driver is in the order of this array struct driver_lookup lookup[3] = { @@ -1367,7 +1369,7 @@ static int winusb_get_device_list(struct libusb_context *ctx, struct discovered_ dev_id, (unsigned int)install_state); continue; } - get_api_type(ctx, dev_info, &dev_info_data, &api, &sub_api); + get_api_type(dev_info, &dev_info_data, &api, &sub_api); break; } @@ -2031,7 +2033,7 @@ const struct windows_usb_api_backend usb_api_backend[USB_API_MAX] = { pLibK_GetProcAddress((PVOID *)&WinUSBX[i].fn, i, KUSB_FNID_##fn); \ } while (0) -#define NativeWinUSBOnly_Set(fn) \ +#define NativeWinUSBOnly_Set(fn) \ do { \ if (native_winusb) \ WinUSBX[i].fn = (WinUsb_##fn##_t)GetProcAddress(h, "WinUsb_" #fn); \ @@ -2900,6 +2902,8 @@ static int winusbx_clear_halt(int sub_api, struct libusb_device_handle *dev_hand */ static int winusbx_abort_control(int sub_api, struct usbi_transfer *itransfer) { + UNUSED(sub_api); + UNUSED(itransfer); // Cancelling of the I/O is done in the parent return LIBUSB_SUCCESS; } @@ -3310,6 +3314,8 @@ static int _hid_get_report_descriptor(struct hid_device_priv *dev, void *data, s static int _hid_get_descriptor(struct hid_device_priv *dev, HANDLE hid_handle, int recipient, int type, int _index, void *data, size_t *size) { + UNUSED(recipient); + switch (type) { case LIBUSB_DT_DEVICE: usbi_dbg("LIBUSB_DT_DEVICE"); @@ -3350,6 +3356,8 @@ static int _hid_get_report(struct hid_device_priv *dev, HANDLE hid_handle, int i DWORD ioctl_code, read_size, expected_size = (DWORD)*size; int r = LIBUSB_SUCCESS; + UNUSED(dev); + if (tp->hid_buffer != NULL) usbi_dbg("program assertion failed: hid_buffer is not NULL"); @@ -3429,6 +3437,8 @@ static int _hid_set_report(struct hid_device_priv *dev, HANDLE hid_handle, int i // If an id is reported, we must allow MAX_HID_REPORT_SIZE + 1 size_t max_report_size = MAX_HID_REPORT_SIZE + (id ? 1 : 0); + UNUSED(dev); + if (tp->hid_buffer != NULL) usbi_dbg("program assertion failed: hid_buffer is not NULL"); @@ -3499,6 +3509,8 @@ static int _hid_class_request(struct hid_device_priv *dev, HANDLE hid_handle, in int report_type = (value >> 8) & 0xFF; int report_id = value & 0xFF; + UNUSED(_index); + if ((LIBUSB_REQ_RECIPIENT(request_type) != LIBUSB_RECIPIENT_INTERFACE) && (LIBUSB_REQ_RECIPIENT(request_type) != LIBUSB_RECIPIENT_DEVICE)) return LIBUSB_ERROR_INVALID_PARAM; @@ -3518,6 +3530,8 @@ static int _hid_class_request(struct hid_device_priv *dev, HANDLE hid_handle, in */ static int hid_init(struct libusb_context *ctx) { + UNUSED(ctx); + DLL_GET_HANDLE(hid); DLL_LOAD_FUNC(hid, HidD_GetAttributes, TRUE); @@ -3564,6 +3578,7 @@ static int hid_open(int sub_api, struct libusb_device_handle *dev_handle) const char * const type[3] = {"input", "output", "feature"}; #endif + UNUSED(sub_api); CHECK_HID_AVAILABLE; if (priv->hid == NULL) { @@ -3704,6 +3719,7 @@ static void hid_close(int sub_api, struct libusb_device_handle *dev_handle) HANDLE file_handle; int i; + UNUSED(sub_api); if (!api_hid_available) return; @@ -3721,6 +3737,7 @@ static int hid_claim_interface(int sub_api, struct libusb_device_handle *dev_han struct winusb_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); struct winusb_device_priv *priv = _device_priv(dev_handle->dev); + UNUSED(sub_api); CHECK_HID_AVAILABLE; // NB: Disconnection detection is not possible in this function @@ -3744,6 +3761,7 @@ static int hid_release_interface(int sub_api, struct libusb_device_handle *dev_h struct winusb_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); struct winusb_device_priv *priv = _device_priv(dev_handle->dev); + UNUSED(sub_api); CHECK_HID_AVAILABLE; if (priv->usb_interface[iface].path == NULL) @@ -3761,6 +3779,9 @@ static int hid_set_interface_altsetting(int sub_api, struct libusb_device_handle { struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); + UNUSED(sub_api); + UNUSED(iface); + CHECK_HID_AVAILABLE; if (altsetting > 255) @@ -3788,6 +3809,7 @@ static int hid_submit_control_transfer(int sub_api, struct usbi_transfer *itrans size_t size; int r = LIBUSB_ERROR_INVALID_PARAM; + UNUSED(sub_api); CHECK_HID_AVAILABLE; safe_free(transfer_priv->hid_buffer); @@ -3884,6 +3906,7 @@ static int hid_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer DWORD size; int r = LIBUSB_SUCCESS; + UNUSED(sub_api); CHECK_HID_AVAILABLE; transfer_priv->hid_dest = NULL; @@ -3967,6 +3990,7 @@ static int hid_abort_transfers(int sub_api, struct usbi_transfer *itransfer) HANDLE hid_handle; int current_interface; + UNUSED(sub_api); CHECK_HID_AVAILABLE; current_interface = transfer_priv->interface_number; @@ -3992,6 +4016,7 @@ static int hid_reset_device(int sub_api, struct libusb_device_handle *dev_handle HANDLE hid_handle; int current_interface; + UNUSED(sub_api); CHECK_HID_AVAILABLE; // Flushing the queues on all interfaces is the best we can achieve @@ -4012,6 +4037,7 @@ static int hid_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, HANDLE hid_handle; int current_interface; + UNUSED(sub_api); CHECK_HID_AVAILABLE; current_interface = interface_by_endpoint(priv, handle_priv, endpoint); @@ -4043,6 +4069,8 @@ static int hid_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, int r = LIBUSB_TRANSFER_COMPLETED; uint32_t corrected_size = io_size; + UNUSED(sub_api); + if (transfer_priv->hid_buffer != NULL) { // If we have a valid hid_buffer, it means the transfer was async if (transfer_priv->hid_dest != NULL) { // Data readout @@ -4084,6 +4112,8 @@ static int composite_open(int sub_api, struct libusb_device_handle *dev_handle) // SUB_API_MAX + 1 as the SUB_API_MAX pos is used to indicate availability of HID bool available[SUB_API_MAX + 1] = { 0 }; + UNUSED(sub_api); + for (i = 0; i < USB_MAXINTERFACES; i++) { switch (priv->usb_interface[i].apib->id) { case USB_API_WINUSBX: @@ -4128,6 +4158,8 @@ static void composite_close(int sub_api, struct libusb_device_handle *dev_handle // SUB_API_MAX + 1 as the SUB_API_MAX pos is used to indicate availability of HID bool available[SUB_API_MAX + 1] = { 0 }; + UNUSED(sub_api); + for (i = 0; i < USB_MAXINTERFACES; i++) { switch (priv->usb_interface[i].apib->id) { case USB_API_WINUSBX: @@ -4155,6 +4187,7 @@ static int composite_claim_interface(int sub_api, struct libusb_device_handle *d { struct winusb_device_priv *priv = _device_priv(dev_handle->dev); + UNUSED(sub_api); CHECK_SUPPORTED_API(priv->usb_interface[iface].apib, claim_interface); return priv->usb_interface[iface].apib-> @@ -4165,6 +4198,7 @@ static int composite_set_interface_altsetting(int sub_api, struct libusb_device_ { struct winusb_device_priv *priv = _device_priv(dev_handle->dev); + UNUSED(sub_api); CHECK_SUPPORTED_API(priv->usb_interface[iface].apib, set_interface_altsetting); return priv->usb_interface[iface].apib-> @@ -4175,6 +4209,7 @@ static int composite_release_interface(int sub_api, struct libusb_device_handle { struct winusb_device_priv *priv = _device_priv(dev_handle->dev); + UNUSED(sub_api); CHECK_SUPPORTED_API(priv->usb_interface[iface].apib, release_interface); return priv->usb_interface[iface].apib-> @@ -4190,6 +4225,8 @@ static int composite_submit_control_transfer(int sub_api, struct usbi_transfer * WINUSB_SETUP_PACKET *setup = (WINUSB_SETUP_PACKET *)transfer->buffer; int iface, pass, r; + UNUSED(sub_api); + // Interface shouldn't matter for control, but it does in practice, with Windows' // restrictions with regards to accessing HID keyboards and mice. Try to target // a specific interface first, if possible. @@ -4252,6 +4289,8 @@ static int composite_submit_bulk_transfer(int sub_api, struct usbi_transfer *itr struct winusb_device_priv *priv = _device_priv(transfer->dev_handle->dev); int current_interface; + UNUSED(sub_api); + current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); if (current_interface < 0) { usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); @@ -4271,6 +4310,8 @@ static int composite_submit_iso_transfer(int sub_api, struct usbi_transfer *itra struct winusb_device_priv *priv = _device_priv(transfer->dev_handle->dev); int current_interface; + UNUSED(sub_api); + current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); if (current_interface < 0) { usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); @@ -4290,6 +4331,8 @@ static int composite_clear_halt(int sub_api, struct libusb_device_handle *dev_ha struct winusb_device_priv *priv = _device_priv(dev_handle->dev); int current_interface; + UNUSED(sub_api); + current_interface = interface_by_endpoint(priv, handle_priv, endpoint); if (current_interface < 0) { usbi_err(ctx, "unable to match endpoint to an open interface - cannot clear"); @@ -4309,6 +4352,8 @@ static int composite_abort_control(int sub_api, struct usbi_transfer *itransfer) struct winusb_device_priv *priv = _device_priv(transfer->dev_handle->dev); int current_interface = transfer_priv->interface_number; + UNUSED(sub_api); + if ((current_interface < 0) || (current_interface >= USB_MAXINTERFACES)) { usbi_err(TRANSFER_CTX(transfer), "program assertion failed: invalid interface_number"); return LIBUSB_ERROR_NOT_FOUND; @@ -4327,6 +4372,8 @@ static int composite_abort_transfers(int sub_api, struct usbi_transfer *itransfe struct winusb_device_priv *priv = _device_priv(transfer->dev_handle->dev); int current_interface = transfer_priv->interface_number; + UNUSED(sub_api); + if ((current_interface < 0) || (current_interface >= USB_MAXINTERFACES)) { usbi_err(TRANSFER_CTX(transfer), "program assertion failed: invalid interface_number"); return LIBUSB_ERROR_NOT_FOUND; @@ -4345,6 +4392,8 @@ static int composite_reset_device(int sub_api, struct libusb_device_handle *dev_ uint8_t i; bool available[SUB_API_MAX]; + UNUSED(sub_api); + for (i = 0; i < SUB_API_MAX; i++) available[i] = false; @@ -4372,6 +4421,7 @@ static int composite_copy_transfer_data(int sub_api, struct usbi_transfer *itran struct winusb_device_priv *priv = _device_priv(transfer->dev_handle->dev); int current_interface = transfer_priv->interface_number; + UNUSED(sub_api); CHECK_SUPPORTED_API(priv->usb_interface[current_interface].apib, copy_transfer_data); return priv->usb_interface[current_interface].apib-> |