1 /*
2  * Copyright (c) 2016-2019, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef	ARM_TRUSTED_FIRMWARE_EXPORT_LIB_UTILS_DEF_EXP_H
8 #define	ARM_TRUSTED_FIRMWARE_EXPORT_LIB_UTILS_DEF_EXP_H
9 
10 /* EXPORT HEADER -- See include/export/README for details! -- EXPORT HEADER */
11 
12 /*
13  * For those constants to be shared between C and other sources, apply a 'U',
14  * 'UL', 'ULL', 'L' or 'LL' suffix to the argument only in C, to avoid
15  * undefined or unintended behaviour.
16  *
17  * The GNU assembler and linker do not support these suffixes (it causes the
18  * build process to fail) therefore the suffix is omitted when used in linker
19  * scripts and assembler files.
20 */
21 #if defined(__ASSEMBLER__)
22 # define   U(_x)	(_x)
23 # define  UL(_x)	(_x)
24 # define ULL(_x)	(_x)
25 # define   L(_x)	(_x)
26 # define  LL(_x)	(_x)
27 #else
28 # define  U_(_x)	(_x##U)
29 # define   U(_x)	U_(_x)
30 # define  UL(_x)	(_x##UL)
31 # define ULL(_x)	(_x##ULL)
32 # define   L(_x)	(_x##L)
33 # define  LL(_x)	(_x##LL)
34 
35 #endif
36 
37 #endif /* ARM_TRUSTED_FIRMWARE_EXPORT_LIB_UTILS_DEF_EXP_H */
38