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