Index: third_party/libusb/msvc/stdint.h |
diff --git a/third_party/libusb/msvc/stdint.h b/third_party/libusb/msvc/stdint.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..00988d9bba32a6092b84f96b122f614422bde950 |
--- /dev/null |
+++ b/third_party/libusb/msvc/stdint.h |
@@ -0,0 +1,256 @@ |
+/** |
+ * This file has no copyright assigned and is placed in the Public Domain. |
+ * This file was originally part of the w64 mingw-runtime package. |
+ */ |
+ |
+/* ISO C9x 7.18 Integer types <stdint.h> |
+ * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794) |
+ * |
+ * THIS SOFTWARE IS NOT COPYRIGHTED |
+ * |
+ * Contributor: Danny Smith <danny_r_smith_2001@yahoo.co.nz> |
+ * Modified for libusb/MSVC: Pete Batard <pbatard@gmail.com> |
+ * |
+ * This source code is offered for use in the public domain. You may |
+ * use, modify or distribute it freely. |
+ * |
+ * This code is distributed in the hope that it will be useful but |
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |
+ * DISCLAIMED. This includes but is not limited to warranties of |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ * |
+ * Date: 2010-04-02 |
+ */ |
+ |
+#ifndef _MSC_VER |
+#error This header should only be used with Microsoft compilers |
+#endif |
+ |
+#ifndef _STDINT_H |
+#define _STDINT_H |
+ |
+#ifndef _INTPTR_T_DEFINED |
+#define _INTPTR_T_DEFINED |
+#ifndef __intptr_t_defined |
+#define __intptr_t_defined |
+#undef intptr_t |
+#ifdef _WIN64 |
+ typedef __int64 intptr_t; |
+#else |
+ typedef int intptr_t; |
+#endif /* _WIN64 */ |
+#endif /* __intptr_t_defined */ |
+#endif /* _INTPTR_T_DEFINED */ |
+ |
+#ifndef _UINTPTR_T_DEFINED |
+#define _UINTPTR_T_DEFINED |
+#ifndef __uintptr_t_defined |
+#define __uintptr_t_defined |
+#undef uintptr_t |
+#ifdef _WIN64 |
+ typedef unsigned __int64 uintptr_t; |
+#else |
+ typedef unsigned int uintptr_t; |
+#endif /* _WIN64 */ |
+#endif /* __uintptr_t_defined */ |
+#endif /* _UINTPTR_T_DEFINED */ |
+ |
+#ifndef _PTRDIFF_T_DEFINED |
+#define _PTRDIFF_T_DEFINED |
+#ifndef _PTRDIFF_T_ |
+#define _PTRDIFF_T_ |
+#undef ptrdiff_t |
+#ifdef _WIN64 |
+ typedef __int64 ptrdiff_t; |
+#else |
+ typedef int ptrdiff_t; |
+#endif /* _WIN64 */ |
+#endif /* _PTRDIFF_T_ */ |
+#endif /* _PTRDIFF_T_DEFINED */ |
+ |
+#ifndef _WCHAR_T_DEFINED |
+#define _WCHAR_T_DEFINED |
+#ifndef __cplusplus |
+ typedef unsigned short wchar_t; |
+#endif /* C++ */ |
+#endif /* _WCHAR_T_DEFINED */ |
+ |
+#ifndef _WCTYPE_T_DEFINED |
+#define _WCTYPE_T_DEFINED |
+#ifndef _WINT_T |
+#define _WINT_T |
+ typedef unsigned short wint_t; |
+ typedef unsigned short wctype_t; |
+#endif /* _WINT_T */ |
+#endif /* _WCTYPE_T_DEFINED */ |
+ |
+/* 7.18.1.1 Exact-width integer types */ |
+typedef __int8 int8_t; |
+typedef unsigned __int8 uint8_t; |
+typedef __int16 int16_t; |
+typedef unsigned __int16 uint16_t; |
+typedef __int32 int32_t; |
+typedef unsigned __int32 uint32_t; |
+typedef __int64 int64_t; |
+typedef unsigned __int64 uint64_t; |
+ |
+/* 7.18.1.2 Minimum-width integer types */ |
+typedef signed char int_least8_t; |
+typedef unsigned char uint_least8_t; |
+typedef short int_least16_t; |
+typedef unsigned short uint_least16_t; |
+typedef int int_least32_t; |
+typedef unsigned uint_least32_t; |
+typedef __int64 int_least64_t; |
+typedef unsigned __int64 uint_least64_t; |
+ |
+/* 7.18.1.3 Fastest minimum-width integer types |
+ * Not actually guaranteed to be fastest for all purposes |
+ * Here we use the exact-width types for 8 and 16-bit ints. |
+ */ |
+typedef __int8 int_fast8_t; |
+typedef unsigned __int8 uint_fast8_t; |
+typedef __int16 int_fast16_t; |
+typedef unsigned __int16 uint_fast16_t; |
+typedef __int32 int_fast32_t; |
+typedef unsigned __int32 uint_fast32_t; |
+typedef __int64 int_fast64_t; |
+typedef unsigned __int64 uint_fast64_t; |
+ |
+/* 7.18.1.5 Greatest-width integer types */ |
+typedef __int64 intmax_t; |
+typedef unsigned __int64 uintmax_t; |
+ |
+/* 7.18.2 Limits of specified-width integer types */ |
+ |
+/* 7.18.2.1 Limits of exact-width integer types */ |
+#define INT8_MIN (-128) |
+#define INT16_MIN (-32768) |
+#define INT32_MIN (-2147483647 - 1) |
+#define INT64_MIN (-9223372036854775807LL - 1) |
+ |
+#define INT8_MAX 127 |
+#define INT16_MAX 32767 |
+#define INT32_MAX 2147483647 |
+#define INT64_MAX 9223372036854775807LL |
+ |
+#define UINT8_MAX 255 |
+#define UINT16_MAX 65535 |
+#define UINT32_MAX 0xffffffffU /* 4294967295U */ |
+#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */ |
+ |
+/* 7.18.2.2 Limits of minimum-width integer types */ |
+#define INT_LEAST8_MIN INT8_MIN |
+#define INT_LEAST16_MIN INT16_MIN |
+#define INT_LEAST32_MIN INT32_MIN |
+#define INT_LEAST64_MIN INT64_MIN |
+ |
+#define INT_LEAST8_MAX INT8_MAX |
+#define INT_LEAST16_MAX INT16_MAX |
+#define INT_LEAST32_MAX INT32_MAX |
+#define INT_LEAST64_MAX INT64_MAX |
+ |
+#define UINT_LEAST8_MAX UINT8_MAX |
+#define UINT_LEAST16_MAX UINT16_MAX |
+#define UINT_LEAST32_MAX UINT32_MAX |
+#define UINT_LEAST64_MAX UINT64_MAX |
+ |
+/* 7.18.2.3 Limits of fastest minimum-width integer types */ |
+#define INT_FAST8_MIN INT8_MIN |
+#define INT_FAST16_MIN INT16_MIN |
+#define INT_FAST32_MIN INT32_MIN |
+#define INT_FAST64_MIN INT64_MIN |
+ |
+#define INT_FAST8_MAX INT8_MAX |
+#define INT_FAST16_MAX INT16_MAX |
+#define INT_FAST32_MAX INT32_MAX |
+#define INT_FAST64_MAX INT64_MAX |
+ |
+#define UINT_FAST8_MAX UINT8_MAX |
+#define UINT_FAST16_MAX UINT16_MAX |
+#define UINT_FAST32_MAX UINT32_MAX |
+#define UINT_FAST64_MAX UINT64_MAX |
+ |
+/* 7.18.2.4 Limits of integer types capable of holding |
+ object pointers */ |
+#ifdef _WIN64 |
+#define INTPTR_MIN INT64_MIN |
+#define INTPTR_MAX INT64_MAX |
+#define UINTPTR_MAX UINT64_MAX |
+#else |
+#define INTPTR_MIN INT32_MIN |
+#define INTPTR_MAX INT32_MAX |
+#define UINTPTR_MAX UINT32_MAX |
+#endif |
+ |
+/* 7.18.2.5 Limits of greatest-width integer types */ |
+#define INTMAX_MIN INT64_MIN |
+#define INTMAX_MAX INT64_MAX |
+#define UINTMAX_MAX UINT64_MAX |
+ |
+/* 7.18.3 Limits of other integer types */ |
+#ifdef _WIN64 |
+#define PTRDIFF_MIN INT64_MIN |
+#define PTRDIFF_MAX INT64_MAX |
+#else |
+#define PTRDIFF_MIN INT32_MIN |
+#define PTRDIFF_MAX INT32_MAX |
+#endif |
+ |
+#define SIG_ATOMIC_MIN INT32_MIN |
+#define SIG_ATOMIC_MAX INT32_MAX |
+ |
+#ifndef SIZE_MAX |
+#ifdef _WIN64 |
+#define SIZE_MAX UINT64_MAX |
+#else |
+#define SIZE_MAX UINT32_MAX |
+#endif |
+#endif |
+ |
+#ifndef WCHAR_MIN /* also in wchar.h */ |
+#define WCHAR_MIN 0U |
+#define WCHAR_MAX 0xffffU |
+#endif |
+ |
+/* |
+ * wint_t is unsigned short for compatibility with MS runtime |
+ */ |
+#define WINT_MIN 0U |
+#define WINT_MAX 0xffffU |
+ |
+ |
+/* 7.18.4 Macros for integer constants */ |
+ |
+/* 7.18.4.1 Macros for minimum-width integer constants |
+ |
+ Accoding to Douglas Gwyn <gwyn@arl.mil>: |
+ "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC |
+ 9899:1999 as initially published, the expansion was required |
+ to be an integer constant of precisely matching type, which |
+ is impossible to accomplish for the shorter types on most |
+ platforms, because C99 provides no standard way to designate |
+ an integer constant with width less than that of type int. |
+ TC1 changed this to require just an integer constant |
+ *expression* with *promoted* type." |
+ |
+ The trick used here is from Clive D W Feather. |
+*/ |
+ |
+#define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val)) |
+#define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val)) |
+#define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val)) |
+/* The 'trick' doesn't work in C89 for long long because, without |
+ suffix, (val) will be evaluated as int, not intmax_t */ |
+#define INT64_C(val) val##i64 |
+ |
+#define UINT8_C(val) (val) |
+#define UINT16_C(val) (val) |
+#define UINT32_C(val) (val##i32) |
+#define UINT64_C(val) val##ui64 |
+ |
+/* 7.18.4.2 Macros for greatest-width integer constants */ |
+#define INTMAX_C(val) val##i64 |
+#define UINTMAX_C(val) val##ui64 |
+ |
+#endif |