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