Linux: Fix compilation error if type __u64 is already defined by gcc

This is the case with Mageia Cauldron which has gcc 9.2.1
This commit is contained in:
Mounir IDRASSI 2019-10-28 18:57:07 +01:00
parent 659df4c6df
commit 3fa636d477
No known key found for this signature in database
GPG Key ID: 02C30AE90FAE4A6F
1 changed files with 3 additions and 5 deletions

View File

@ -49,8 +49,6 @@
#include <stdlib.h>
#include <string.h>
typedef uint64 __u64;
#ifdef _MSC_VER
typedef uint64 uint64_t;
@ -70,7 +68,7 @@ typedef int32 ssize_t;
#endif
#endif
static VC_INLINE void jent_get_nstime(__u64 *out)
static VC_INLINE void jent_get_nstime(uint64 *out)
{
*out = __rdtsc();;
}
@ -80,7 +78,7 @@ static VC_INLINE void jent_get_nstime(__u64 *out)
/* taken from Linux kernel */
#if CRYPTOPP_BOOL_X64
#define DECLARE_ARGS(val, low, high) unsigned low, high
#define EAX_EDX_VAL(val, low, high) ((low) | ((__u64)(high) << 32))
#define EAX_EDX_VAL(val, low, high) ((low) | ((uint64)(high) << 32))
#define EAX_EDX_RET(val, low, high) "=a" (low), "=d" (high)
#else
#define DECLARE_ARGS(val, low, high) unsigned long long val
@ -88,7 +86,7 @@ static VC_INLINE void jent_get_nstime(__u64 *out)
#define EAX_EDX_RET(val, low, high) "=A" (val)
#endif
VC_INLINE void jent_get_nstime(__u64 *out)
VC_INLINE void jent_get_nstime(uint64 *out)
{
DECLARE_ARGS(val, low, high);
asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));