Extend compatibility of header files
Use standard macros for defining unsigned integer constants and add
preprocessor conditions for macros that may come from C library headers
depending on the exact implementation of the library.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: Ib84a2bca2869934fa2eb0fe29861dc8da1a50b92
diff --git a/components/common/utils/include/compiler.h b/components/common/utils/include/compiler.h
index c363df9..d0354c5 100644
--- a/components/common/utils/include/compiler.h
+++ b/components/common/utils/include/compiler.h
@@ -1,11 +1,14 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
*/
#ifndef COMPILER_H
#define COMPILER_H
+#include <sys/cdefs.h>
+
/*
* Macros that should be used instead of using __attribute__ directly to
* ease portability and make the code easier to read.
@@ -15,19 +18,33 @@
* the conflicting defines has the same meaning in that environment.
* Surrounding the troublesome defines with #ifndef should be enough.
*/
+#ifndef __deprecated
#define __deprecated __attribute__((deprecated))
+#endif
#ifndef __packed
#define __packed __attribute__((packed))
#endif
+#ifndef __weak
#define __weak __attribute__((weak))
+#endif
#ifndef __noreturn
#define __noreturn __attribute__((__noreturn__))
#endif
+#ifndef __pure
#define __pure __attribute__((pure))
+#endif
+#ifndef __aligned
#define __aligned(x) __attribute__((aligned(x)))
+#endif
+#ifndef __printf
#define __printf(a, b) __attribute__((format(printf, a, b)))
+#endif
+#ifndef __noinline
#define __noinline __attribute__((noinline))
+#endif
+#ifndef __attr_const
#define __attr_const __attribute__((__const__))
+#endif
#ifndef __unused
#define __unused __attribute__((unused))
#endif
@@ -35,9 +52,15 @@
#ifndef __used
#define __used __attribute__((__used__))
#endif
+#ifndef __must_check
#define __must_check __attribute__((warn_unused_result))
+#endif
+#ifndef __cold
#define __cold __attribute__((__cold__))
+#endif
+#ifndef __section
#define __section(x) __attribute__((section(x)))
+#endif
#define __data __section(".data")
#define __bss __section(".bss")
#ifdef __clang__
diff --git a/platform/drivers/arm/juno_trng/juno_def.h b/platform/drivers/arm/juno_trng/juno_def.h
index 97d1e3c..99d05c4 100644
--- a/platform/drivers/arm/juno_trng/juno_def.h
+++ b/platform/drivers/arm/juno_trng/juno_def.h
@@ -11,14 +11,16 @@
#ifndef JUNO_DEF_H
#define JUNO_DEF_H
+#include <stdint.h>
+
/*******************************************************************************
* TRNG related constants
******************************************************************************/
#define TRNG_NOUTPUTS 4
-#define TRNG_STATUS UL(0x10)
-#define TRNG_INTMASK UL(0x14)
-#define TRNG_CONFIG UL(0x18)
-#define TRNG_CONTROL UL(0x1C)
+#define TRNG_STATUS UINT32_C(0x10)
+#define TRNG_INTMASK UINT32_C(0x14)
+#define TRNG_CONFIG UINT32_C(0x18)
+#define TRNG_CONTROL UINT32_C(0x1C)
#define TRNG_NBYTES 16 /* Number of bytes generated per round. */