Imre Kis | ef5c264 | 2021-12-17 14:07:35 +0100 | [diff] [blame] | 1 | // SPDX-License-Identifier: BSD-3-Clause |
| 2 | /* |
Imre Kis | d47a145 | 2024-05-29 14:25:59 +0200 | [diff] [blame] | 3 | * Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved. |
Imre Kis | ef5c264 | 2021-12-17 14:07:35 +0100 | [diff] [blame] | 4 | */ |
| 5 | |
Imre Kis | d47a145 | 2024-05-29 14:25:59 +0200 | [diff] [blame] | 6 | #include "libc_platform.h" |
Imre Kis | ef5c264 | 2021-12-17 14:07:35 +0100 | [diff] [blame] | 7 | #include "trace.h" |
| 8 | |
| 9 | /* |
| 10 | * The generic trace function called on assert fail. |
| 11 | */ |
Imre Kis | d47a145 | 2024-05-29 14:25:59 +0200 | [diff] [blame] | 12 | void __noreturn platform_assert(const char *file, int line, const char *func, |
| 13 | const char *failedexpr) |
Imre Kis | ef5c264 | 2021-12-17 14:07:35 +0100 | [diff] [blame] | 14 | { |
| 15 | #if TRACE_LEVEL >= TRACE_LEVEL_ERROR |
Gabor Toth | 121288a | 2024-10-03 18:02:15 +0200 | [diff] [blame] | 16 | ts_trace_printf(func, line, TRACE_LEVEL_ERROR, "assertion %s failed", failedexpr); |
Imre Kis | ef5c264 | 2021-12-17 14:07:35 +0100 | [diff] [blame] | 17 | #endif /* TRACE_LEVEL */ |
| 18 | |
| 19 | while (1) |
| 20 | ; |
| 21 | } |
Imre Kis | d47a145 | 2024-05-29 14:25:59 +0200 | [diff] [blame] | 22 | |
| 23 | void __noreturn platform_abort(void) |
| 24 | { |
| 25 | #if TRACE_LEVEL >= TRACE_LEVEL_ERROR |
| 26 | trace_puts("abort()"); |
| 27 | #endif /* TRACE_LEVEL */ |
| 28 | |
| 29 | while (1) |
| 30 | ; |
| 31 | } |