1 /* 2 * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <assert.h> 8 #include <cdefs.h> 9 #include <console.h> 10 #include <debug.h> 11 #include <platform.h> 12 #include <stdio.h> 13 14 /* 15 * Only print the output if PLAT_LOG_LEVEL_ASSERT is higher or equal to 16 * LOG_LEVEL_INFO, which is the default value for builds with DEBUG=1. 17 */ 18 19 #if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE 20 void __assert(const char *file, unsigned int line, const char *assertion) 21 { 22 printf("ASSERT: %s:%d:%s\n", file, line, assertion); 23 backtrace("assert"); 24 (void)console_flush(); 25 plat_panic_handler(); 26 } 27 #elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO 28 void __assert(const char *file, unsigned int line) 29 { 30 printf("ASSERT: %s:%d\n", file, line); 31 backtrace("assert"); 32 (void)console_flush(); 33 plat_panic_handler(); 34 } 35 #else 36 void __assert(void) 37 { 38 backtrace("assert"); 39 (void)console_flush(); 40 plat_panic_handler(); 41 } 42 #endif 43