# ifdef _WIN32
# ifdef _WIN64
# define ossl_ssize_t __int64
+# define OSSL_SSIZE_MAX _I64_MAX
# else
# define ossl_ssize_t int
+# define OSSL_SSIZE_MAX INT_MAX
# endif
# endif
-# if defined(__ultrix) && !defined(ssize_t)
+# if (defined(__ultrix) || defined(OPENSSL_SYS_UEFI)) && !defined(ssize_t)
# define ossl_ssize_t int
+# define OSSL_SSIZE_MAX INT_MAX
# endif
# ifndef ossl_ssize_t
# define ossl_ssize_t ssize_t
+# define OSSL_SSIZE_MAX SSIZE_MAX
# endif
# ifdef DEBUG_UNUSED
# endif
/* Standard integer types */
-# if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
- defined(__osf__) || defined(__sgi) || defined(__hpux) || \
- defined(OPENSSL_SYS_VMS)
-# include <inttypes.h>
-# elif defined(OPENSSL_SYS_UEFI)
+# if defined(OPENSSL_SYS_UEFI)
typedef INT8 int8_t;
typedef UINT8 uint8_t;
typedef INT16 int16_t;
typedef UINT32 uint32_t;
typedef INT64 int64_t;
typedef UINT64 uint64_t;
+# define PRIu64 "%Lu"
+# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
+ 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
* isn't available or did not define it, just go with hard-coded.
*/
# ifndef PRIu64
-# define PRIu64 "lu"
+# ifdef SIXTY_FOUR_BIT_LONG
+# define PRIu64 "lu"
+# else
+# define PRIu64 "llu"
+# endif
# endif
/* ossl_inline: portable inline definition usable in public headers */