Allow use of standard integer types.
authorDr. Stephen Henson <steve@openssl.org>
Wed, 13 May 2015 16:34:53 +0000 (17:34 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 14 May 2015 01:06:17 +0000 (02:06 +0100)
Include appropriate headers for standard integer types in e_os2.h

This should use stdint.h, inttypes.h or a workaround for systems which
have neither.

Reviewed-by: Matt Caswell <matt@openssl.org>
include/openssl/e_os2.h

index 12bad8acc405570bea3458513f0e97307961e1a5..9df7d53943953098c7ba9839688b5149263c3306 100644 (file)
@@ -268,6 +268,45 @@ extern "C" {
 #  define __owur
 # endif
 
+/* Standard integer types */
+# if defined(__osf__) || defined(__sgi) || defined(__hpux) || defined(OPENSSL_SYS_VMS)
+#  include <inttypes.h>
+# elif defined(_MSC_VER) && _MSC_VER<=1500
+/*
+ * minimally required typdefs for systems not supporting inttypes.h or
+ * stdint.h: currently just older VC++
+ */
+typedef signed char int8_t;
+typedef unsigned char uint8_t;
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned int uint32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+#  include <limits.h>
+
+#  define INT8_MAX    SCHAR_MAX
+#  define INT8_MIN    SCHAR_MIN
+#  define UINT8_MAX   UCHAR_MAX
+
+#  define INT16_MAX   SHRT_MAX
+#  define INT16_MIN   SHRT_MIN
+#  define UINT16_MAX  USHRT_MAX
+
+#  define INT32_MAX   INT_MAX
+#  define INT32_MIN   INT_MIN
+#  define UINT32_MAX  UINT_MAX
+
+#  define INT64_MAX   _I64_MAX
+#  define INT64_MIN   _I64_MIN
+#  define UINT64_MAX  _UI64_MAX
+
+# else
+#  include <stdint.h>
+# endif
+
 #ifdef  __cplusplus
 }
 #endif