Introduce UL(), L() and LL() macros
authorAntonio Nino Diaz <[email protected]>
Wed, 18 Jul 2018 10:56:00 +0000 (11:56 +0100)
committerAntonio Nino Diaz <[email protected]>
Fri, 20 Jul 2018 10:36:00 +0000 (11:36 +0100)
utils_def.h already has U() and ULL(), but not UL(), which is needed for
types like uinptr_t and u_register_t.

Also added L() and LL() for signed values.

Change-Id: I0654df80d57149ff49507c52f1b27f3d500486a0
Signed-off-by: Antonio Nino Diaz <[email protected]>
include/lib/utils_def.h

index 1bdf3c4b0520542d7aff607917343573266c0c0f..6bc97065cbe1f51f9ecfc2230ec9e7a2f8e8dce3 100644 (file)
        ((u32) > (UINT32_MAX - (inc)) ? 1 : 0)
 
 /*
- * 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.
+ * For those constants to be shared between C and other sources, apply a 'U',
+ * 'UL', 'ULL', 'L' or 'LL' suffix to the argument only in C, to avoid
+ * undefined or unintended behaviour.
  *
- * 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.
+ * The GNU assembler and linker do not support these suffixes (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   U(_x)       (_x)
+# define  UL(_x)       (_x)
 # define ULL(_x)       (_x)
+# define   L(_x)       (_x)
+# define  LL(_x)       (_x)
 #else
-# define  U(_x)                (_x##U)
+# define   U(_x)       (_x##U)
+# define  UL(_x)       (_x##UL)
 # define ULL(_x)       (_x##ULL)
+# define   L(_x)       (_x##L)
+# define  LL(_x)       (_x##LL)
 #endif
 
 /* Register size of the current architecture. */