From f5b0bfd3f4f450424b5bc1f084959d0436c8a6e6 Mon Sep 17 00:00:00 2001 From: thewon86 Date: Wed, 20 Apr 2022 10:56:11 +0800 Subject: uniform code writing-disable interrupt --- libcpu/aarch64/common/cpu.c | 2 +- libcpu/aarch64/common/mmu.c | 2 +- libcpu/arm/am335x/cpu.c | 2 +- libcpu/arm/arm926/cpuport.c | 2 +- libcpu/arm/armv6/cpuport.c | 2 +- libcpu/arm/cortex-a/cpu.c | 2 +- libcpu/arm/dm36x/cpuport.c | 2 +- libcpu/arm/realview-a8-vmm/cpu.c | 2 +- libcpu/arm/s3c24x0/cpu.c | 2 +- libcpu/arm/sep4020/cpu.c | 10 ++++++---- libcpu/arm/zynqmp-r5/cpu.c | 2 +- libcpu/mips/common/exception.c | 2 +- libcpu/mips/gs264/mmu.c | 3 ++- libcpu/ppc/ppc405/interrupt.c | 6 +++--- libcpu/risc-v/ch32v1/cpuport.c | 4 ++-- libcpu/risc-v/common/cpuport.c | 2 +- libcpu/risc-v/nuclei/cpuport.c | 2 +- libcpu/risc-v/t-head/e9xx/cpuport.c | 2 +- libcpu/risc-v/virt64/cpuport.c | 2 +- libcpu/unicore32/sep6200/cpu.c | 2 +- 20 files changed, 29 insertions(+), 26 deletions(-) (limited to 'libcpu') diff --git a/libcpu/aarch64/common/cpu.c b/libcpu/aarch64/common/cpu.c index 3fb6c4c3d1..8dc6635ef4 100644 --- a/libcpu/aarch64/common/cpu.c +++ b/libcpu/aarch64/common/cpu.c @@ -98,7 +98,7 @@ void rt_hw_spin_unlock(rt_hw_spinlock_t *lock) /** shutdown CPU */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + register rt_int32_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/aarch64/common/mmu.c b/libcpu/aarch64/common/mmu.c index 59292c6db2..777a0a5b1a 100644 --- a/libcpu/aarch64/common/mmu.c +++ b/libcpu/aarch64/common/mmu.c @@ -240,7 +240,7 @@ void rt_hw_mmu_init(void) int rt_hw_mmu_map(unsigned long addr, unsigned long size, unsigned long attr) { int ret; - rt_ubase_t level; + rt_base_t level; level = rt_hw_interrupt_disable(); ret = rt_hw_mmu_setmtt(addr, addr + size, addr, attr); diff --git a/libcpu/arm/am335x/cpu.c b/libcpu/arm/am335x/cpu.c index 19161a1817..f04994af26 100644 --- a/libcpu/arm/am335x/cpu.c +++ b/libcpu/arm/am335x/cpu.c @@ -151,7 +151,7 @@ rt_base_t rt_hw_cpu_dcache_status() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/arm926/cpuport.c b/libcpu/arm/arm926/cpuport.c index 9148afa401..d27ee10d30 100644 --- a/libcpu/arm/arm926/cpuport.c +++ b/libcpu/arm/arm926/cpuport.c @@ -163,7 +163,7 @@ RT_WEAK void rt_hw_cpu_reset() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/armv6/cpuport.c b/libcpu/arm/armv6/cpuport.c index 6e82539c6e..232e7f0cec 100644 --- a/libcpu/arm/armv6/cpuport.c +++ b/libcpu/arm/armv6/cpuport.c @@ -164,7 +164,7 @@ RT_WEAK void rt_hw_cpu_reset() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/cortex-a/cpu.c b/libcpu/arm/cortex-a/cpu.c index c95c58a13c..7d1a389f08 100644 --- a/libcpu/arm/cortex-a/cpu.c +++ b/libcpu/arm/cortex-a/cpu.c @@ -65,7 +65,7 @@ void rt_hw_spin_unlock(rt_hw_spinlock_t *lock) /** shutdown CPU */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/dm36x/cpuport.c b/libcpu/arm/dm36x/cpuport.c index 435ca2f15f..a23dc323c6 100644 --- a/libcpu/arm/dm36x/cpuport.c +++ b/libcpu/arm/dm36x/cpuport.c @@ -162,7 +162,7 @@ RT_WEAK void rt_hw_cpu_reset() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/realview-a8-vmm/cpu.c b/libcpu/arm/realview-a8-vmm/cpu.c index 8c5a6d16dd..48e859e4e5 100644 --- a/libcpu/arm/realview-a8-vmm/cpu.c +++ b/libcpu/arm/realview-a8-vmm/cpu.c @@ -20,7 +20,7 @@ /** shutdown CPU */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/s3c24x0/cpu.c b/libcpu/arm/s3c24x0/cpu.c index 3a72782ae4..06db937eb9 100644 --- a/libcpu/arm/s3c24x0/cpu.c +++ b/libcpu/arm/s3c24x0/cpu.c @@ -173,7 +173,7 @@ RT_WEAK void rt_hw_cpu_reset() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/arm/sep4020/cpu.c b/libcpu/arm/sep4020/cpu.c index 256ede56e9..2977f38f4c 100644 --- a/libcpu/arm/sep4020/cpu.c +++ b/libcpu/arm/sep4020/cpu.c @@ -11,7 +11,7 @@ #include #include -extern rt_uint32_t rt_hw_interrupt_disable(void); +extern rt_base_t rt_hw_interrupt_disable(void); //TODO #warning I DON'T KNOW IF THE MMU OPERATION WORKS ON SEP4020 @@ -175,12 +175,14 @@ RT_WEAK void rt_hw_cpu_reset() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t UNUSED level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); - - RT_ASSERT(RT_NULL); + while (level) + { + RT_ASSERT(RT_NULL); + } } /*@}*/ diff --git a/libcpu/arm/zynqmp-r5/cpu.c b/libcpu/arm/zynqmp-r5/cpu.c index d0f1b0204c..788df69d6c 100644 --- a/libcpu/arm/zynqmp-r5/cpu.c +++ b/libcpu/arm/zynqmp-r5/cpu.c @@ -25,7 +25,7 @@ void rt_hw_cpu_reset() */ void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/mips/common/exception.c b/libcpu/mips/common/exception.c index 9c9858f5e1..ca048a926b 100644 --- a/libcpu/mips/common/exception.c +++ b/libcpu/mips/common/exception.c @@ -61,7 +61,7 @@ const char *exception_name[] = { rt_base_t rt_hw_interrupt_disable(void) { - rt_base_t status = read_c0_status(); + register rt_base_t status = read_c0_status(); clear_c0_status(ST0_IE); return status; } diff --git a/libcpu/mips/gs264/mmu.c b/libcpu/mips/gs264/mmu.c index 2ba6d92106..1dcf0a445d 100644 --- a/libcpu/mips/gs264/mmu.c +++ b/libcpu/mips/gs264/mmu.c @@ -803,7 +803,8 @@ void *rt_hw_mmu_v2p(rt_mmu_info *mmu_info, void* v_addr) } #ifdef RT_USING_USERSPACE -void init_mm_setup(unsigned int *mtbl, unsigned int size, unsigned int pv_off) { +void init_mm_setup(unsigned int *mtbl, unsigned int size, unsigned int pv_off) +{ unsigned int va; for (va = 0; va < 0x1000; va++) { diff --git a/libcpu/ppc/ppc405/interrupt.c b/libcpu/ppc/ppc405/interrupt.c index 72477fcb04..79607691f4 100644 --- a/libcpu/ppc/ppc405/interrupt.c +++ b/libcpu/ppc/ppc405/interrupt.c @@ -77,7 +77,7 @@ void uic_interrupt(rt_uint32_t uic_base, int vec_base) rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t new_handler, void* param, const char* name) { - int intVal; + rt_base_t level; rt_isr_handler_t old_handler; if (((int)vector < 0) || ((int) vector >= MAX_HANDLERS)) @@ -86,13 +86,13 @@ rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t new_handle } /* install the handler in the system interrupt table */ - intVal = rt_hw_interrupt_disable (); /* lock interrupts to prevent races */ + level = rt_hw_interrupt_disable(); /* lock interrupts to prevent races */ old_handler = isr_table[vector].handler; isr_table[vector].handler = new_handler; isr_table[vector].param = param; - rt_hw_interrupt_enable (intVal); + rt_hw_interrupt_enable(level); } void rt_hw_interrupt_mask(int vector) diff --git a/libcpu/risc-v/ch32v1/cpuport.c b/libcpu/risc-v/ch32v1/cpuport.c index 754caeb250..3bd76ee561 100644 --- a/libcpu/risc-v/ch32v1/cpuport.c +++ b/libcpu/risc-v/ch32v1/cpuport.c @@ -151,7 +151,7 @@ void sw_clearpend(void) */ rt_base_t rt_hw_interrupt_disable(void) { - rt_base_t value = 0; + register rt_base_t value = 0; asm("csrrw %0, mstatus, %1":"=r"(value):"r"(0x1800)); return value; } @@ -188,7 +188,7 @@ void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to) /* shutdown CPU */ void rt_hw_cpu_shutdown(void) { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/risc-v/common/cpuport.c b/libcpu/risc-v/common/cpuport.c index 622e1bd321..97f34d8c4c 100644 --- a/libcpu/risc-v/common/cpuport.c +++ b/libcpu/risc-v/common/cpuport.c @@ -153,7 +153,7 @@ void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to) /** shutdown CPU */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/risc-v/nuclei/cpuport.c b/libcpu/risc-v/nuclei/cpuport.c index a107799937..88f3af8230 100644 --- a/libcpu/risc-v/nuclei/cpuport.c +++ b/libcpu/risc-v/nuclei/cpuport.c @@ -152,7 +152,7 @@ void rt_hw_context_switch(rt_ubase_t from, rt_ubase_t to) */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/risc-v/t-head/e9xx/cpuport.c b/libcpu/risc-v/t-head/e9xx/cpuport.c index 646220df56..824fe5240f 100644 --- a/libcpu/risc-v/t-head/e9xx/cpuport.c +++ b/libcpu/risc-v/t-head/e9xx/cpuport.c @@ -137,7 +137,7 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, /** shutdown CPU */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/risc-v/virt64/cpuport.c b/libcpu/risc-v/virt64/cpuport.c index 9b0c2cce6b..26360bd18a 100644 --- a/libcpu/risc-v/virt64/cpuport.c +++ b/libcpu/risc-v/virt64/cpuport.c @@ -102,7 +102,7 @@ void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to) /** shutdown CPU */ void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); diff --git a/libcpu/unicore32/sep6200/cpu.c b/libcpu/unicore32/sep6200/cpu.c index 966277295d..8ce7f89186 100644 --- a/libcpu/unicore32/sep6200/cpu.c +++ b/libcpu/unicore32/sep6200/cpu.c @@ -262,7 +262,7 @@ RT_WEAK void rt_hw_cpu_reset() */ RT_WEAK void rt_hw_cpu_shutdown() { - rt_uint32_t level; + rt_base_t level; rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); -- cgit v1.3.1