summaryrefslogtreecommitdiff
path: root/libusb/os/windows_common.h
diff options
context:
space:
mode:
authorChris Dickens <christopher.a.dickens@gmail.com>2020-04-28 12:08:08 -0700
committerChris Dickens <christopher.a.dickens@gmail.com>2020-04-28 12:08:08 -0700
commitd21956dc3357bb40cde6d47eaf2497caf8d0a2de (patch)
tree246da844ea27ccf20b25f2e91d3e7e24e88e398e /libusb/os/windows_common.h
parenta157b55656e7130c4ea118abcb1dfad21db428b8 (diff)
downloadlibusb-d21956dc3357bb40cde6d47eaf2497caf8d0a2de.tar.gz
core: Kill backend get_device_descriptor() function
Simplify the library by moving device descriptor initialization to the backend, while the device is being set up. This removes the duplication of essentially the same code in every backend. Add some missing calls to libusb_le16_to_cpu() when reading multi-byte fields from the "raw" device descriptor. It has worked thus far because the platforms not using the calls happen to be the same endianness as the USB bus. While here, throw in some static assertions to ensure there is no mismatch between the libusb device descriptor structure and any device descriptor structure provided by the platform headers. Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/os/windows_common.h')
-rw-r--r--libusb/os/windows_common.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/libusb/os/windows_common.h b/libusb/os/windows_common.h
index e48f7a9..6617de4 100644
--- a/libusb/os/windows_common.h
+++ b/libusb/os/windows_common.h
@@ -224,7 +224,7 @@ typedef struct USB_DK_TRANSFER_REQUEST {
} USB_DK_TRANSFER_REQUEST, *PUSB_DK_TRANSFER_REQUEST;
struct usbdk_device_priv {
- USB_DK_DEVICE_INFO info;
+ USB_DK_DEVICE_ID ID;
PUSB_CONFIGURATION_DESCRIPTOR *config_descriptors;
HANDLE redirector_handle;
HANDLE system_handle;
@@ -251,7 +251,6 @@ struct winusb_device_priv {
// by Windows (eg. HID keyboards or mice cannot do R/W)
} usb_interface[USB_MAXINTERFACES];
struct hid_device_priv *hid;
- USB_DEVICE_DESCRIPTOR dev_descriptor;
PUSB_CONFIGURATION_DESCRIPTOR *config_descriptor; // list of pointers to the cached config descriptors
};
@@ -299,7 +298,6 @@ struct windows_backend {
struct discovered_devs **discdevs);
int (*open)(struct libusb_device_handle *dev_handle);
void (*close)(struct libusb_device_handle *dev_handle);
- int (*get_device_descriptor)(struct libusb_device *device, void *buffer);
int (*get_active_config_descriptor)(struct libusb_device *device,
void *buffer, size_t len);
int (*get_config_descriptor)(struct libusb_device *device,