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