diff options
author | Pete Batard <pbatard@gmail.com> | 2010-02-06 14:56:34 +0000 |
---|---|---|
committer | Pete Batard <pbatard@gmail.com> | 2010-02-06 14:56:34 +0000 |
commit | dbd8c6a375a76d52847c3049b638a4e397c26ac4 (patch) | |
tree | 29202ee848f3ae25d893fe2a3ebfd31fa3d1ecc1 /libusb/os/windows_usb.h | |
parent | e88c82603e5a38fbb153796f57bd6102f2f472f0 (diff) | |
download | libusb-dbd8c6a375a76d52847c3049b638a4e397c26ac4.tar.gz |
r141: HID I/O Overhaul:r141
- discard report ID from buffer (new hid_buffer in transfer_priv & new copy_transfer_data backend call)
- overflow detection
- extended HID xusb test
Also:
- fixed ill placed memset on composite device siblings detection
Diffstat (limited to 'libusb/os/windows_usb.h')
-rw-r--r-- | libusb/os/windows_usb.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libusb/os/windows_usb.h b/libusb/os/windows_usb.h index 12a90c8..3d22c43 100644 --- a/libusb/os/windows_usb.h +++ b/libusb/os/windows_usb.h @@ -52,6 +52,9 @@ #if !defined(SPDRP_ADDRESS) #define SPDRP_ADDRESS 28 #endif +#if !defined(SPDRP_INSTALL_STATE) +#define SPDRP_INSTALL_STATE 34 +#endif #if defined(__CYGWIN__ ) // cygwin produces a warning unless these prototypes are defined @@ -89,6 +92,7 @@ inline void upperize(char* str) { #define MAX_PATH_LENGTH 128 #define MAX_KEY_LENGTH 256 #define MAX_TIMER_SEMAPHORES 128 +#define TIMER_REQUEST_RETRY_MS 100 #define ERR_BUFFER_SIZE 256 // Handle code for HID interface that have been claimed ("dibs") @@ -138,13 +142,14 @@ struct windows_usb_api_backend { int (*submit_control_transfer)(struct usbi_transfer *itransfer); int (*abort_control)(struct usbi_transfer *itransfer); int (*abort_transfers)(struct usbi_transfer *itransfer); + int (*copy_transfer_data)(struct usbi_transfer *itransfer, uint32_t io_size); }; 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 "'"); \ +#define PRINT_UNSUPPORTED_API(fname) \ + usbi_dbg("unsupported API call for '" \ + #fname "' (unrecognized device driver)"); \ return LIBUSB_ERROR_NOT_SUPPORTED; /* @@ -292,6 +297,8 @@ static inline struct windows_device_handle_priv *__device_handle_priv( struct windows_transfer_priv { struct winfd pollable_fd; uint8_t interface_number; + uint8_t *hid_buffer; // 1 byte extended data buffer, required for HID + size_t hid_expected_size; }; |