Add U() macro to share constants between C and other sources

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>
This commit is contained in:
Varun Wadekar 2017-05-18 10:32:51 -07:00
parent fb7d32e588
commit 6176b4fcb4
1 changed files with 8 additions and 5 deletions

View File

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