18bb6de15SAntonio Nino Diaz /* 2*351f9cd8SYann Gautier * Copyright (c) 2018-2022, ARM Limited and Contributors. All rights reserved. 38bb6de15SAntonio Nino Diaz * 48bb6de15SAntonio Nino Diaz * SPDX-License-Identifier: BSD-3-Clause 58bb6de15SAntonio Nino Diaz */ 68bb6de15SAntonio Nino Diaz 78bb6de15SAntonio Nino Diaz #ifndef CDEFS_H 88bb6de15SAntonio Nino Diaz #define CDEFS_H 98bb6de15SAntonio Nino Diaz 108bb6de15SAntonio Nino Diaz #define __dead2 __attribute__((__noreturn__)) 118bb6de15SAntonio Nino Diaz #define __deprecated __attribute__((__deprecated__)) 128bb6de15SAntonio Nino Diaz #define __packed __attribute__((__packed__)) 138bb6de15SAntonio Nino Diaz #define __used __attribute__((__used__)) 148bb6de15SAntonio Nino Diaz #define __unused __attribute__((__unused__)) 15*351f9cd8SYann Gautier #define __maybe_unused __attribute__((__unused__)) 168bb6de15SAntonio Nino Diaz #define __aligned(x) __attribute__((__aligned__(x))) 178bb6de15SAntonio Nino Diaz #define __section(x) __attribute__((__section__(x))) 181dcc28cfSDaniel Boulby #if RECLAIM_INIT_CODE 191dcc28cfSDaniel Boulby /* 201dcc28cfSDaniel Boulby * Add each function to a section that is unique so the functions can still 211dcc28cfSDaniel Boulby * be garbage collected 221dcc28cfSDaniel Boulby */ 231dcc28cfSDaniel Boulby #define __init __section(".text.init." __FILE__ "." __XSTRING(__LINE__)) 241dcc28cfSDaniel Boulby #else 251dcc28cfSDaniel Boulby #define __init 261dcc28cfSDaniel Boulby #endif 278bb6de15SAntonio Nino Diaz 288bb6de15SAntonio Nino Diaz #define __printflike(fmtarg, firstvararg) \ 298bb6de15SAntonio Nino Diaz __attribute__((__format__ (__printf__, fmtarg, firstvararg))) 308bb6de15SAntonio Nino Diaz 318bb6de15SAntonio Nino Diaz #define __weak_reference(sym, alias) \ 328bb6de15SAntonio Nino Diaz __asm__(".weak alias"); \ 338bb6de15SAntonio Nino Diaz __asm__(".equ alias, sym") 348bb6de15SAntonio Nino Diaz 358bb6de15SAntonio Nino Diaz #define __STRING(x) #x 368bb6de15SAntonio Nino Diaz #define __XSTRING(x) __STRING(x) 378bb6de15SAntonio Nino Diaz 388bb6de15SAntonio Nino Diaz #endif /* CDEFS_H */ 39