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