18bb6de15SAntonio Nino Diaz /* 2*f906a44eSMasahiro Yamada * Copyright (c) 2018-2019, 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 ASSERT_H 88bb6de15SAntonio Nino Diaz #define ASSERT_H 98bb6de15SAntonio Nino Diaz 108bb6de15SAntonio Nino Diaz #include <cdefs.h> 1109d40e0eSAntonio Nino Diaz 128bb6de15SAntonio Nino Diaz #include <platform_def.h> 138bb6de15SAntonio Nino Diaz 1409d40e0eSAntonio Nino Diaz #include <common/debug.h> 1509d40e0eSAntonio Nino Diaz 168bb6de15SAntonio Nino Diaz #ifndef PLAT_LOG_LEVEL_ASSERT 178bb6de15SAntonio Nino Diaz #define PLAT_LOG_LEVEL_ASSERT LOG_LEVEL 188bb6de15SAntonio Nino Diaz #endif 198bb6de15SAntonio Nino Diaz 208bb6de15SAntonio Nino Diaz #if ENABLE_ASSERTIONS 218bb6de15SAntonio Nino Diaz # if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE 228bb6de15SAntonio Nino Diaz # define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e)) 238bb6de15SAntonio Nino Diaz # elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO 248bb6de15SAntonio Nino Diaz # define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__)) 258bb6de15SAntonio Nino Diaz # else 268bb6de15SAntonio Nino Diaz # define assert(e) ((e) ? (void)0 : __assert()) 278bb6de15SAntonio Nino Diaz # endif 288bb6de15SAntonio Nino Diaz #else 298bb6de15SAntonio Nino Diaz #define assert(e) ((void)0) 308bb6de15SAntonio Nino Diaz #endif /* ENABLE_ASSERTIONS */ 318bb6de15SAntonio Nino Diaz 328bb6de15SAntonio Nino Diaz #if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE 33*f906a44eSMasahiro Yamada void __dead2 __assert(const char *file, unsigned int line, 348bb6de15SAntonio Nino Diaz const char *assertion); 358bb6de15SAntonio Nino Diaz #elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO 36*f906a44eSMasahiro Yamada void __dead2 __assert(const char *file, unsigned int line); 378bb6de15SAntonio Nino Diaz #else 38*f906a44eSMasahiro Yamada void __dead2 __assert(void); 398bb6de15SAntonio Nino Diaz #endif 408bb6de15SAntonio Nino Diaz 418bb6de15SAntonio Nino Diaz #endif /* ASSERT_H */ 42