xref: /aosp_15_r20/external/arm-trusted-firmware/include/lib/libc/assert.h (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #ifndef ASSERT_H
8*54fd6939SJiyong Park #define ASSERT_H
9*54fd6939SJiyong Park 
10*54fd6939SJiyong Park #include <cdefs.h>
11*54fd6939SJiyong Park 
12*54fd6939SJiyong Park #include <platform_def.h>
13*54fd6939SJiyong Park 
14*54fd6939SJiyong Park #include <common/debug.h>
15*54fd6939SJiyong Park 
16*54fd6939SJiyong Park #ifndef PLAT_LOG_LEVEL_ASSERT
17*54fd6939SJiyong Park #define PLAT_LOG_LEVEL_ASSERT	LOG_LEVEL
18*54fd6939SJiyong Park #endif
19*54fd6939SJiyong Park 
20*54fd6939SJiyong Park #if ENABLE_ASSERTIONS
21*54fd6939SJiyong Park # if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
22*54fd6939SJiyong Park #  define assert(e)	((e) ? (void)0 : __assert(__FILE__, __LINE__, #e))
23*54fd6939SJiyong Park # elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
24*54fd6939SJiyong Park #  define assert(e)	((e) ? (void)0 : __assert(__FILE__, __LINE__))
25*54fd6939SJiyong Park # else
26*54fd6939SJiyong Park #  define assert(e)	((e) ? (void)0 : __assert())
27*54fd6939SJiyong Park # endif
28*54fd6939SJiyong Park #else
29*54fd6939SJiyong Park #define assert(e)	((void)0)
30*54fd6939SJiyong Park #endif /* ENABLE_ASSERTIONS */
31*54fd6939SJiyong Park 
32*54fd6939SJiyong Park #if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
33*54fd6939SJiyong Park void __dead2 __assert(const char *file, unsigned int line,
34*54fd6939SJiyong Park 		      const char *assertion);
35*54fd6939SJiyong Park #elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
36*54fd6939SJiyong Park void __dead2 __assert(const char *file, unsigned int line);
37*54fd6939SJiyong Park #else
38*54fd6939SJiyong Park void __dead2 __assert(void);
39*54fd6939SJiyong Park #endif
40*54fd6939SJiyong Park 
41*54fd6939SJiyong Park #endif /* ASSERT_H */
42