| From 2e9b6bbebb7cf1ef0095516ec6d5203deb3822e8 Mon Sep 17 00:00:00 2001 |
| From: Nathan Hjelm <hjelmn@me.com> |
| Date: Fri, 9 Oct 2015 15:03:10 -0600 |
| Subject: [PATCH 1/1] 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> |
| --- |
| 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.4.9 |
| |