1 /*
2  * Copyright (c) 2025 Renesas Electronics Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @file
9  * @brief Renesas RX arch public error handling
10  *
11  * Renesas RX-specific kernel error handling interface. Included by
12  * rx/arch.h.
13  */
14 
15 #ifndef ZEPHYR_INCLUDE_ARCH_RX_ERROR_H_
16 #define ZEPHYR_INCLUDE_ARCH_RX_ERROR_H_
17 
18 #include <stdbool.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #define ARCH_EXCEPT(reason_p)                           \
25 	do {                                                \
26 		arch_irq_unlock(0);                             \
27 		__asm__ volatile("mov %[_reason], r1\n\t"       \
28 				 "int #2\n\t" ::[_reason] "r"(reason_p) \
29 				 : "r1", "memory");                     \
30 	} while (false)
31 
32 #ifdef __cplusplus
33 }
34 #endif
35 
36 #endif /* ZEPHYR_INCLUDE_ARCH_RX_ERROR_H_ */
37