blob: 1659e0ed2ba9c44f1800032fc1a3e7e16db21143 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/*
* Copyright (c) 2006-2025, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2025-04-20 GuEe-GUI The first version
*/
#include <csr.h>
#ifdef RT_USING_SMP
#define rt_hw_interrupt_disable rt_hw_local_irq_disable
#define rt_hw_interrupt_enable rt_hw_local_irq_enable
#endif
.section ".text","ax"
START_POINT(rt_hw_interrupt_is_disabled)
csrr a0, CSR_STATUS
andi a0, a0, SR_IE
seqz a0, a0
ret
START_POINT_END(rt_hw_interrupt_is_disabled)
START_POINT(rt_hw_interrupt_enable)
/* Restore to old csr */
csrs CSR_STATUS, a0
ret
START_POINT_END(rt_hw_interrupt_enable)
START_POINT(rt_hw_interrupt_disable)
/* Clear IE */
csrrci a0, CSR_STATUS, SR_IE
ret
START_POINT_END(rt_hw_interrupt_disable)
|