1 /*
2  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef CDEFS_H
8 #define CDEFS_H
9 
10 #define __dead2		__attribute__((__noreturn__))
11 #define __deprecated	__attribute__((__deprecated__))
12 #define __packed	__attribute__((__packed__))
13 #define __used		__attribute__((__used__))
14 #define __unused	__attribute__((__unused__))
15 #define __aligned(x)	__attribute__((__aligned__(x)))
16 #define __section(x)	__attribute__((__section__(x)))
17 #if RECLAIM_INIT_CODE
18 /*
19  * Add each function to a section that is unique so the functions can still
20  * be garbage collected
21  */
22 #define __init		__section(".text.init." __FILE__ "." __XSTRING(__LINE__))
23 #else
24 #define __init
25 #endif
26 
27 #define __printflike(fmtarg, firstvararg) \
28 		__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
29 
30 #define __weak_reference(sym, alias)	\
31 	__asm__(".weak alias");		\
32 	__asm__(".equ alias, sym")
33 
34 #define __STRING(x)	#x
35 #define __XSTRING(x)	__STRING(x)
36 
37 #endif /* CDEFS_H */
38