123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- From 87adda6abc3467ede45a6d2a87df2b9efdf5bb33 Mon Sep 17 00:00:00 2001
- From: Nathan Hjelm <hjelmn@me.com>
- Date: Fri, 9 Oct 2015 15:03:10 -0600
- Subject: [PATCH] Use C99 standard fixed width integer types in usb.h
- This patch modifies the integer types in usb.h of the form u_int* to the
- C99 standard uint* types.
- Based on patch from Gwenhael Goavec-Merou.
- Backported from upstream commit
- https://github.com/libusb/libusb-compat-0.1/commit/2e9b6bbebb7cf1ef0095516ec6d5203deb3822e8.
- Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
- Signed-off-by: Nathan Hjelm <hjelmn@me.com>
- Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
- ---
- libusb/usb.h | 130 ++++++++++++++++++++++++++++++++---------------------------
- 1 file changed, 70 insertions(+), 60 deletions(-)
- diff --git a/libusb/usb.h b/libusb/usb.h
- index 84e730f..d2c30aa 100644
- --- a/libusb/usb.h
- +++ b/libusb/usb.h
- @@ -2,6 +2,7 @@
- * Prototypes, structure definitions and macros.
- *
- * Copyright (c) 2000-2003 Johannes Erdfelt <johannes@erdfelt.com>
- + * Copyright (c) 2015 Nathan Hjelm <hjelmn@cs.unm.edu>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- @@ -22,8 +23,8 @@
- * distribution for details.
- */
-
- -#ifndef __USB_H__
- -#define __USB_H__
- +#ifndef USB_H
- +#define USB_H
-
- #include <unistd.h>
- #include <stdlib.h>
- @@ -31,6 +32,15 @@
-
- #include <dirent.h>
-
- +/* stdint.h is not available on older MSVC */
- +#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
- +
- /*
- * USB spec information
- *
- @@ -78,40 +88,40 @@
-
- /* All standard descriptors have these 2 fields in common */
- struct usb_descriptor_header {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- };
-
- /* String descriptor */
- struct usb_string_descriptor {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- - u_int16_t wData[1];
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- + uint16_t wData[1];
- };
-
- /* HID descriptor */
- struct usb_hid_descriptor {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- - u_int16_t bcdHID;
- - u_int8_t bCountryCode;
- - u_int8_t bNumDescriptors;
- - /* u_int8_t bReportDescriptorType; */
- - /* u_int16_t wDescriptorLength; */
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- + uint16_t bcdHID;
- + uint8_t bCountryCode;
- + uint8_t bNumDescriptors;
- + /* uint8_t bReportDescriptorType; */
- + /* uint16_t wDescriptorLength; */
- /* ... */
- };
-
- /* Endpoint descriptor */
- #define USB_MAXENDPOINTS 32
- struct usb_endpoint_descriptor {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- - u_int8_t bEndpointAddress;
- - u_int8_t bmAttributes;
- - u_int16_t wMaxPacketSize;
- - u_int8_t bInterval;
- - u_int8_t bRefresh;
- - u_int8_t bSynchAddress;
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- + uint8_t bEndpointAddress;
- + uint8_t bmAttributes;
- + uint16_t wMaxPacketSize;
- + uint8_t bInterval;
- + uint8_t bRefresh;
- + uint8_t bSynchAddress;
-
- unsigned char *extra; /* Extra descriptors */
- int extralen;
- @@ -129,15 +139,15 @@ struct usb_endpoint_descriptor {
- /* Interface descriptor */
- #define USB_MAXINTERFACES 32
- struct usb_interface_descriptor {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- - u_int8_t bInterfaceNumber;
- - u_int8_t bAlternateSetting;
- - u_int8_t bNumEndpoints;
- - u_int8_t bInterfaceClass;
- - u_int8_t bInterfaceSubClass;
- - u_int8_t bInterfaceProtocol;
- - u_int8_t iInterface;
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- + uint8_t bInterfaceNumber;
- + uint8_t bAlternateSetting;
- + uint8_t bNumEndpoints;
- + uint8_t bInterfaceClass;
- + uint8_t bInterfaceSubClass;
- + uint8_t bInterfaceProtocol;
- + uint8_t iInterface;
-
- struct usb_endpoint_descriptor *endpoint;
-
- @@ -155,14 +165,14 @@ struct usb_interface {
- /* Configuration descriptor information.. */
- #define USB_MAXCONFIG 8
- struct usb_config_descriptor {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- - u_int16_t wTotalLength;
- - u_int8_t bNumInterfaces;
- - u_int8_t bConfigurationValue;
- - u_int8_t iConfiguration;
- - u_int8_t bmAttributes;
- - u_int8_t MaxPower;
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- + uint16_t wTotalLength;
- + uint8_t bNumInterfaces;
- + uint8_t bConfigurationValue;
- + uint8_t iConfiguration;
- + uint8_t bmAttributes;
- + uint8_t MaxPower;
-
- struct usb_interface *interface;
-
- @@ -172,28 +182,28 @@ struct usb_config_descriptor {
-
- /* Device descriptor */
- struct usb_device_descriptor {
- - u_int8_t bLength;
- - u_int8_t bDescriptorType;
- - u_int16_t bcdUSB;
- - u_int8_t bDeviceClass;
- - u_int8_t bDeviceSubClass;
- - u_int8_t bDeviceProtocol;
- - u_int8_t bMaxPacketSize0;
- - u_int16_t idVendor;
- - u_int16_t idProduct;
- - u_int16_t bcdDevice;
- - u_int8_t iManufacturer;
- - u_int8_t iProduct;
- - u_int8_t iSerialNumber;
- - u_int8_t bNumConfigurations;
- + uint8_t bLength;
- + uint8_t bDescriptorType;
- + uint16_t bcdUSB;
- + uint8_t bDeviceClass;
- + uint8_t bDeviceSubClass;
- + uint8_t bDeviceProtocol;
- + uint8_t bMaxPacketSize0;
- + uint16_t idVendor;
- + uint16_t idProduct;
- + uint16_t bcdDevice;
- + uint8_t iManufacturer;
- + uint8_t iProduct;
- + uint8_t iSerialNumber;
- + uint8_t bNumConfigurations;
- };
-
- struct usb_ctrl_setup {
- - u_int8_t bRequestType;
- - u_int8_t bRequest;
- - u_int16_t wValue;
- - u_int16_t wIndex;
- - u_int16_t wLength;
- + uint8_t bRequestType;
- + uint8_t bRequest;
- + uint16_t wValue;
- + uint16_t wIndex;
- + uint16_t wLength;
- };
-
- /*
- @@ -254,7 +264,7 @@ struct usb_device {
-
- void *dev; /* Darwin support */
-
- - u_int8_t devnum;
- + uint8_t devnum;
-
- unsigned char num_children;
- struct usb_device **children;
- @@ -266,7 +276,7 @@ struct usb_bus {
- char dirname[PATH_MAX + 1];
-
- struct usb_device *devices;
- - u_int32_t location;
- + uint32_t location;
-
- struct usb_device *root_dev;
- };
- --
- 2.9.3
|