diff options
| author | heyuanjie <xx> | 2018-07-30 11:12:12 +0800 |
|---|---|---|
| committer | heyuanjie <xx> | 2018-07-30 11:12:12 +0800 |
| commit | c79fbd373fc8b300cb2f4564aa934a4e93b81547 (patch) | |
| tree | 1a36c2e650fa13a66eecf21224eda29c567cb731 /components/lwp | |
| parent | e6fedb6e9bfbef07c4bcc065a5538d466abee19f (diff) | |
[lwp]给thread添加lwp成员
Diffstat (limited to 'components/lwp')
| -rw-r--r-- | components/lwp/lwp.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/components/lwp/lwp.c b/components/lwp/lwp.c index 17d5ec0b10..0bfeb4b103 100644 --- a/components/lwp/lwp.c +++ b/components/lwp/lwp.c @@ -46,14 +46,14 @@ extern void lwp_user_entry(void *args, const void *text, void *data); void lwp_set_kernel_sp(uint32_t *sp) { struct rt_lwp *user_data; - user_data = (struct rt_lwp *)rt_current_thread->user_data; + user_data = (struct rt_lwp *)rt_current_thread->lwp; user_data->kernel_sp = sp; } uint32_t *lwp_get_kernel_sp(void) { struct rt_lwp *user_data; - user_data = (struct rt_lwp *)rt_current_thread->user_data; + user_data = (struct rt_lwp *)rt_current_thread->lwp; return user_data->kernel_sp; } @@ -286,7 +286,7 @@ static void lwp_cleanup(struct rt_thread *tid) dbg_log(DBG_INFO, "thread: %s, stack_addr: %08X\n", tid->name, tid->stack_addr); - lwp = (struct rt_lwp *)tid->user_data; + lwp = (struct rt_lwp *)tid->lwp; if (lwp->lwp_type == LWP_TYPE_DYN_ADDR) { @@ -327,16 +327,13 @@ static void lwp_cleanup(struct rt_thread *tid) static void lwp_thread(void *parameter) { - volatile uint32_t tmp; rt_thread_t tid; struct rt_lwp *lwp; - rt_kprintf("%08x %08x\n", &tmp, tmp); - lwp = (struct rt_lwp *)parameter; rt_lwp_mem_init(lwp); tid = rt_thread_self(); - tid->user_data = (rt_uint32_t)lwp; + tid->lwp = lwp; tid->cleanup = lwp_cleanup; lwp_user_entry(lwp->args, lwp->text_entry, lwp->data); @@ -344,7 +341,7 @@ static void lwp_thread(void *parameter) struct rt_lwp *rt_lwp_self(void) { - return (struct rt_lwp *)rt_thread_self()->user_data; + return (struct rt_lwp *)rt_thread_self()->lwp; } int exec(char *filename, int argc, char **argv) |
