Line data Source code
1 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 0 : #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_ */
|