2020-03-21 14:12:26 +01:00
# ifndef __CLOVER_STDINT_H__
# define __CLOVER_STDINT_H__
2021-05-09 16:13:37 +02:00
// Currently only compiling 64 bits.
// If compiling for other size, #ifdef the static_assert depending of the platform and adjust constant (INT_MIN, INT_MAX)
# ifdef __cplusplus
2021-10-02 19:44:16 +02:00
static_assert ( sizeof ( char ) = = 1 , " sizeof(char) != 1 " ) ;
static_assert ( sizeof ( short ) = = 2 , " sizeof(short) != 2 " ) ;
static_assert ( sizeof ( int ) = = 4 , " sizeof(int) != 4 " ) ;
2023-11-18 11:04:54 +01:00
static_assert ( sizeof ( long ) = = 8 , " sizeof(long) != 8 " ) ; // Jief : I think this break on Windows. Conditional compilation required to restore Windows compatibility
2022-01-23 17:12:22 +01:00
//so why EDK2 never used "long". It uses INT32.
2021-10-02 19:44:16 +02:00
static_assert ( sizeof ( long long ) = = 8 , " sizeof(long long) != 8 " ) ;
static_assert ( true , " true " ) ;
2021-05-09 16:13:37 +02:00
# endif
2020-03-21 14:12:26 +01:00
2020-03-13 14:11:58 +01:00
typedef UINT8 uint8_t ;
typedef UINT16 uint16_t ;
typedef UINT32 uint32_t ;
typedef UINT64 uint64_t ;
2020-03-21 14:12:26 +01:00
typedef INT8 int8_t ;
typedef INT16 int16_t ;
typedef INT32 int32_t ;
typedef INT64 int64_t ;
# define PRId8 "hhd"
# define PRId16 "hd"
# define PRId32 "d"
# define PRId64 "lld"
2020-04-08 12:49:00 +02:00
// Jief : Certainly not massively multi platform and multi target ! So far we only compile x86_64 (I think). To be extended if needed.
# ifdef _MSC_VER
# define PRIuPTR "lld"
# else
# define PRIuPTR "lld"
# endif
2020-03-21 14:12:26 +01:00
# define PRIud8 "hhu"
# define PRIu16 "hu"
# define PRIu32 "u"
# define PRIu64 "llu"
# endif