Add U() macro to share constants between C and other sources
authorVarun Wadekar <vwadekar@nvidia.com>
Thu, 18 May 2017 17:32:51 +0000 (10:32 -0700)
committerVarun Wadekar <vwadekar@nvidia.com>
Wed, 14 Jun 2017 23:58:46 +0000 (16:58 -0700)
This patch adds the U(_x) macros to utils_def.h to allow constants to
be shared between C and other sources.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
include/lib/utils_def.h

index 98e78347f769429368998e9ff6053fc4c40d5c4b..52496000cf724aebaf0eef239be89a511f8718f7 100644 (file)
        (((ptr) > UINTPTR_MAX - (inc)) ? 1 : 0)
 
 /*
- * For those constants to be shared between C and other sources, apply a 'ull'
- * suffix to the argument only in C, to avoid undefined or unintended behaviour.
+ * For those constants to be shared between C and other sources, apply a 'u'
+ * or 'ull' suffix to the argument only in C, to avoid undefined or unintended
+ * behaviour.
  *
- * The GNU assembler and linker do not support the 'ull' suffix (it causes the
- * build process to fail) therefore the suffix is omitted when used in linker
- * scripts and assembler files.
+ * The GNU assembler and linker do not support the 'u' and 'ull' suffix (it
+ * causes the build process to fail) therefore the suffix is omitted when used
+ * in linker scripts and assembler files.
 */
 #if defined(__LINKER__) || defined(__ASSEMBLY__)
+# define  U(_x)                (_x)
 # define ULL(_x)       (_x)
 #else
+# define  U(_x)                (_x##u)
 # define ULL(_x)       (_x##ull)
 #endif