[kernel] 将rt_thread结构体改为显式继承rt_object (#7131)

This commit is contained in:
Shicheng Chu
2023-04-04 09:06:27 -04:00
committed by GitHub
parent 8a52e65013
commit 93f3cb30e4
49 changed files with 126 additions and 145 deletions
+2 -2
View File
@@ -48,7 +48,7 @@ int arch_expand_user_stack(void *addr)
else /* map failed, send signal SIGSEGV */
{
#ifdef RT_USING_SIGNALS
dbg_log(DBG_ERROR, "[fault] thread %s mapped addr %p failed!\n", rt_thread_self()->name, addr);
dbg_log(DBG_ERROR, "[fault] thread %s mapped addr %p failed!\n", rt_thread_self()->parent.name, addr);
lwp_thread_kill(rt_thread_self(), SIGSEGV);
ret = 1; /* return 1, will return back to intr, then check exit */
#endif
@@ -57,7 +57,7 @@ int arch_expand_user_stack(void *addr)
else /* not stack, send signal SIGSEGV */
{
#ifdef RT_USING_SIGNALS
dbg_log(DBG_ERROR, "[fault] thread %s access unmapped addr %p!\n", rt_thread_self()->name, addr);
dbg_log(DBG_ERROR, "[fault] thread %s access unmapped addr %p!\n", rt_thread_self()->parent.name, addr);
lwp_thread_kill(rt_thread_self(), SIGSEGV);
ret = 1; /* return 1, will return back to intr, then check exit */
#endif
+1 -1
View File
@@ -1034,7 +1034,7 @@ void lwp_cleanup(struct rt_thread *tid)
return;
}
LOG_I("cleanup thread: %s, stack_addr: %08X", tid->name, tid->stack_addr);
LOG_I("cleanup thread: %s, stack_addr: %08X", tid->parent.name, tid->stack_addr);
level = rt_hw_interrupt_disable();
lwp = (struct rt_lwp *)tid->lwp;
+4 -4
View File
@@ -709,11 +709,11 @@ static void print_thread_info(struct rt_thread* thread, int maxlen)
#ifdef RT_USING_SMP
if (thread->oncpu != RT_CPU_DETACHED)
rt_kprintf("%-*.*s %3d %3d ", maxlen, RT_NAME_MAX, thread->name, thread->oncpu, thread->current_priority);
rt_kprintf("%-*.*s %3d %3d ", maxlen, RT_NAME_MAX, thread->parent.name, thread->oncpu, thread->current_priority);
else
rt_kprintf("%-*.*s N/A %3d ", maxlen, RT_NAME_MAX, thread->name, thread->current_priority);
rt_kprintf("%-*.*s N/A %3d ", maxlen, RT_NAME_MAX, thread->parent.name, thread->current_priority);
#else
rt_kprintf("%-*.*s %3d ", maxlen, RT_NAME_MAX, thread->name, thread->current_priority);
rt_kprintf("%-*.*s %3d ", maxlen, RT_NAME_MAX, thread->parent.name, thread->current_priority);
#endif /*RT_USING_SMP*/
stat = (thread->stat & RT_THREAD_STAT_MASK);
@@ -787,7 +787,7 @@ long list_process(void)
thread = threads[index];
level = rt_hw_interrupt_disable();
if ((thread->type & ~RT_Object_Class_Static) != RT_Object_Class_Thread)
if ((thread->parent.type & ~RT_Object_Class_Static) != RT_Object_Class_Thread)
{
rt_hw_interrupt_enable(level);
continue;
+4 -4
View File
@@ -1525,7 +1525,7 @@ long _sys_clone(void *arg[])
goto fail;
}
thread = rt_thread_create(self->name,
thread = rt_thread_create(self->parent.name,
RT_NULL,
RT_NULL,
self->stack_size,
@@ -1713,7 +1713,7 @@ sysret_t _sys_fork(void)
/* create thread */
self_thread = rt_thread_self();
thread = rt_thread_create(self_thread->name,
thread = rt_thread_create(self_thread->parent.name,
RT_NULL,
RT_NULL,
self_thread->stack_size,
@@ -2361,7 +2361,7 @@ sysret_t sys_execve(const char *path, char *const argv[], char *const envp[])
/* load ok, now set thread name and swap the data of lwp and new_lwp */
level = rt_hw_interrupt_disable();
rt_strncpy(thread->name, run_name + last_backslash, RT_NAME_MAX);
rt_strncpy(thread->parent.name, run_name + last_backslash, RT_NAME_MAX);
rt_pages_free(page, 0);
@@ -2420,7 +2420,7 @@ rt_err_t sys_thread_delete(rt_thread_t thread)
#else
rt_err_t ret = 0;
if(thread->type != RT_Object_Class_Thread)
if(thread->parent.type != RT_Object_Class_Thread)
{
ret = -EINVAL;
goto __exit;