[fixup] aarch64 UMP compiler error (#8677)

Signed-off-by: Shell <smokewood@qq.com>
This commit is contained in:
Shell 2024-03-30 17:58:38 +08:00 committed by Rbb666
parent 17d22ad408
commit 004e5bfd60
11 changed files with 30 additions and 24 deletions

View File

@ -1474,7 +1474,7 @@ static const char *ofw_get_prop_fuzzy_name(const struct rt_ofw_node *np, const c
char *sf, split_field[64]; char *sf, split_field[64];
rt_size_t len = 0, max_ak = 0; rt_size_t len = 0, max_ak = 0;
const char *str, *result = RT_NULL; const char *str, *result = RT_NULL;
RT_BITMAP_DECLARE(ak, sizeof(split_field)); RT_BITMAP_DECLARE(ak, sizeof(split_field)) = {0};
struct rt_ofw_prop *prop; struct rt_ofw_prop *prop;
/* /*

View File

@ -624,7 +624,7 @@ int rt_ofw_get_irq(struct rt_ofw_node *np, int index)
if ((rt_int64_t)cpuid >= 0) if ((rt_int64_t)cpuid >= 0)
{ {
RT_DECLARE_BITMAP(affinity, RT_CPUS_NR) = { 0 }; RT_BITMAP_DECLARE(affinity, RT_CPUS_NR) = { 0 };
rt_bitmap_set_bit(affinity, cpuid); rt_bitmap_set_bit(affinity, cpuid);

View File

@ -66,7 +66,7 @@ void rt_hw_interrupt_uninstall(int vector, rt_isr_handler_t handler, void *param
#if defined(RT_USING_SMP) || defined(RT_USING_AMP) #if defined(RT_USING_SMP) || defined(RT_USING_AMP)
void rt_hw_ipi_send(int ipi_vector, unsigned int cpu_mask) void rt_hw_ipi_send(int ipi_vector, unsigned int cpu_mask)
{ {
RT_DECLARE_BITMAP(cpu_masks, RT_CPUS_NR) = { cpu_mask }; RT_BITMAP_DECLARE(cpu_masks, RT_CPUS_NR) = { cpu_mask };
rt_pic_irq_send_ipi(ipi_vector, cpu_masks); rt_pic_irq_send_ipi(ipi_vector, cpu_masks);
} }

View File

@ -879,7 +879,8 @@ static void rtthread_timer_wrapper(void *timerobj)
} }
#ifdef RT_USING_SMART #ifdef RT_USING_SMART
/* this field is named as tid in musl */ /* this field is named as tid in musl */
int tid = *(int *)&timer->sigev_notify_function; void *ptid = &timer->sigev_notify_function;
int tid = *(int *)ptid;
struct lwp_timer_event_param *data = rt_container_of(timer->work, struct lwp_timer_event_param, work); struct lwp_timer_event_param *data = rt_container_of(timer->work, struct lwp_timer_event_param, work);
data->signo = timer->sigev_signo; data->signo = timer->sigev_signo;

View File

@ -89,7 +89,7 @@ static rt_err_t _mutex_take_safe(rt_mutex_t mtx, rt_int32_t timeout, int flags)
} }
else else
{ {
rc = -RT_EINVAL; rc = -RT_ERROR;
LOG_W("%s: mtx should not be NULL", __func__); LOG_W("%s: mtx should not be NULL", __func__);
RT_ASSERT(0); RT_ASSERT(0);
} }

View File

@ -2700,7 +2700,7 @@ sysret_t sys_execve(const char *path, char *const argv[], char *const envp[])
*/ */
RT_ASSERT(rt_list_entry(lwp->t_grp.prev, struct rt_thread, sibling) == thread); RT_ASSERT(rt_list_entry(lwp->t_grp.prev, struct rt_thread, sibling) == thread);
strncpy(thread->parent.name, run_name + last_backslash, RT_NAME_MAX); strncpy(thread->parent.name, run_name + last_backslash, RT_NAME_MAX - 1);
strncpy(lwp->cmd, new_lwp->cmd, RT_NAME_MAX); strncpy(lwp->cmd, new_lwp->cmd, RT_NAME_MAX);
rt_free(lwp->exe_file); rt_free(lwp->exe_file);
lwp->exe_file = strndup(new_lwp->exe_file, DFS_PATH_MAX); lwp->exe_file = strndup(new_lwp->exe_file, DFS_PATH_MAX);

View File

@ -109,7 +109,7 @@ static void _collect()
rt_page_t page = _trace_head; rt_page_t page = _trace_head;
if (!page) if (!page)
{ {
LOG_RAW("ok! ALLOC CNT %ld\n", _alloc_cnt); rt_kprintf("ok! ALLOC CNT %ld\n", _alloc_cnt);
} }
else else
{ {
@ -159,7 +159,7 @@ void _report(rt_page_t page, size_t size_bits, char *msg)
{ {
void *pg_va = rt_page_page2addr(page); void *pg_va = rt_page_page2addr(page);
LOG_W("%s: %p, allocator: %p, size bits: %lx", msg, pg_va, page->caller, page->trace_size); LOG_W("%s: %p, allocator: %p, size bits: %lx", msg, pg_va, page->caller, page->trace_size);
LOG_RAW("backtrace\n"); rt_kprintf("backtrace\n");
rt_backtrace(); rt_backtrace();
} }
@ -175,7 +175,7 @@ static void _trace_free(rt_page_t page, void *caller, size_t size_bits)
} }
else if (page->trace_size != size_bits) else if (page->trace_size != size_bits)
{ {
LOG_RAW("free with size bits %lx\n", size_bits); rt_kprintf("free with size bits %lx\n", size_bits);
_report(page, size_bits, "incompatible size bits parameter"); _report(page, size_bits, "incompatible size bits parameter");
return ; return ;
} }
@ -636,7 +636,7 @@ void list_page(void)
rt_kprintf("[0x%08p]", rt_page_page2addr(hp)); rt_kprintf("[0x%08p]", rt_page_page2addr(hp));
hp = hp->next; hp = hp->next;
} }
LOG_RAW("\n"); rt_kprintf("\n");
} }
rt_spin_unlock_irqrestore(&_spinlock, level); rt_spin_unlock_irqrestore(&_spinlock, level);

View File

@ -12,8 +12,8 @@ if GetDepend('RT_USING_OFW') == False:
SrcRemove(src, ['setup.c', 'cpu_psci.c', 'psci.c']) SrcRemove(src, ['setup.c', 'cpu_psci.c', 'psci.c'])
if GetDepend('RT_USING_PIC') == True: if GetDepend('RT_USING_PIC') == True:
SrcRemove(src, ['gicv3.c', 'gic.c', 'interrupt.c', 'gtimer.c']) SrcRemove(src, ['gicv3.c', 'gic.c', 'gtimer.c'])
group = DefineGroup('libcpu', src, depend = [''], CPPPATH = CPPPATH) group = DefineGroup('libcpu', src, depend = [''], CPPPATH = CPPPATH)
# build for sub-directory # build for sub-directory

View File

@ -16,10 +16,6 @@
#include "gicv3.h" #include "gicv3.h"
#include "ioremap.h" #include "ioremap.h"
/* exception and interrupt handler table */
struct rt_irq_desc isr_table[MAX_HANDLERS];
#ifndef RT_USING_SMP #ifndef RT_USING_SMP
/* Those variables will be accessed in ISR, so we need to share them. */ /* Those variables will be accessed in ISR, so we need to share them. */
rt_ubase_t rt_interrupt_from_thread = 0; rt_ubase_t rt_interrupt_from_thread = 0;
@ -27,6 +23,11 @@ rt_ubase_t rt_interrupt_to_thread = 0;
rt_ubase_t rt_thread_switch_interrupt_flag = 0; rt_ubase_t rt_thread_switch_interrupt_flag = 0;
#endif #endif
#ifndef RT_USING_PIC
/* exception and interrupt handler table */
struct rt_irq_desc isr_table[MAX_HANDLERS];
#ifndef RT_CPUS_NR #ifndef RT_CPUS_NR
#define RT_CPUS_NR 1 #define RT_CPUS_NR 1
#endif #endif
@ -138,17 +139,17 @@ void rt_hw_interrupt_mask(int vector)
#ifdef SOC_BCM283x #ifdef SOC_BCM283x
if (vector < 32) if (vector < 32)
{ {
IRQ_DISABLE1 = (1 << vector); IRQ_DISABLE1 = (1UL << vector);
} }
else if (vector < 64) else if (vector < 64)
{ {
vector = vector % 32; vector = vector % 32;
IRQ_DISABLE2 = (1 << vector); IRQ_DISABLE2 = (1UL << vector);
} }
else else
{ {
vector = vector - 64; vector = vector - 64;
IRQ_DISABLE_BASIC = (1 << vector); IRQ_DISABLE_BASIC = (1UL << vector);
} }
#else #else
arm_gic_mask(0, vector); arm_gic_mask(0, vector);
@ -164,17 +165,17 @@ void rt_hw_interrupt_umask(int vector)
#ifdef SOC_BCM283x #ifdef SOC_BCM283x
if (vector < 32) if (vector < 32)
{ {
IRQ_ENABLE1 = (1 << vector); IRQ_ENABLE1 = (1UL << vector);
} }
else if (vector < 64) else if (vector < 64)
{ {
vector = vector % 32; vector = vector % 32;
IRQ_ENABLE2 = (1 << vector); IRQ_ENABLE2 = (1UL << vector);
} }
else else
{ {
vector = vector - 64; vector = vector - 64;
IRQ_ENABLE_BASIC = (1 << vector); IRQ_ENABLE_BASIC = (1UL << vector);
} }
#else #else
arm_gic_umask(0, vector); arm_gic_umask(0, vector);
@ -416,6 +417,8 @@ void rt_hw_ipi_handler_install(int ipi_vector, rt_isr_handler_t ipi_isr_handler)
} }
#endif #endif
#endif /* RT_USING_PIC */
#if defined(FINSH_USING_MSH) && defined(RT_USING_INTERRUPT_INFO) #if defined(FINSH_USING_MSH) && defined(RT_USING_INTERRUPT_INFO)
int list_isr() int list_isr()
{ {

View File

@ -690,6 +690,7 @@ static unsigned long *_query(rt_aspace_t aspace, void *vaddr, int *plvl_shf)
if (!(cur_lv_tbl[off] & MMU_TYPE_USED)) if (!(cur_lv_tbl[off] & MMU_TYPE_USED))
{ {
*plvl_shf = level_shift;
return (void *)0; return (void *)0;
} }
@ -709,11 +710,11 @@ static unsigned long *_query(rt_aspace_t aspace, void *vaddr, int *plvl_shf)
off &= MMU_LEVEL_MASK; off &= MMU_LEVEL_MASK;
page = cur_lv_tbl[off]; page = cur_lv_tbl[off];
*plvl_shf = level_shift;
if (!(page & MMU_TYPE_USED)) if (!(page & MMU_TYPE_USED))
{ {
return (void *)0; return (void *)0;
} }
*plvl_shf = level_shift;
return &cur_lv_tbl[off]; return &cur_lv_tbl[off];
} }

View File

@ -27,9 +27,10 @@ class CPPCheck:
[ [
'cppcheck', 'cppcheck',
'-DRT_ASSERT(x)=', '-DRT_ASSERT(x)=',
'-Drt_list_for_each_entry(a,b,c)=a=(void*)b', '-Drt_list_for_each_entry(a,b,c)=a=(void*)b;',
'-I include', '-I include',
'-I thread/components/finsh', '-I thread/components/finsh',
# it's okay because CI will do the real compilation to check this
'--suppress=syntaxError', '--suppress=syntaxError',
'--enable=warning', '--enable=warning',
'performance', 'performance',