From: Andreas Schwab Date: Fri, 28 May 2010 20:28:51 +0000 (+0200) Subject: Decode TLS syscalls on m68k X-Git-Tag: v4.6~110 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=587432273982c136809a6e9182e8ecf674648706;p=strace Decode TLS syscalls on m68k * linux/m68k/syscallent.h: Add entries for get_thread_area, set_thread_area, atomic_comxchg_32, atomic_barrier. * linux/dummy.h (sys_get_thread_area, sys_set_thread_area) [M68K]: Don't redefine. * mem.c (sys_get_thread_area, sys_set_thread_area) [LINUX && M68K]: New. --- diff --git a/linux/dummy.h b/linux/dummy.h index 92e68863..ce81649c 100644 --- a/linux/dummy.h +++ b/linux/dummy.h @@ -41,9 +41,11 @@ /* machine-specific */ #ifndef I386 #define sys_modify_ldt printargs +#ifndef M68K #define sys_get_thread_area printargs #define sys_set_thread_area printargs #endif +#endif #define sys_sched_yield printargs #define sys_sched_get_priority_max sys_sched_get_priority_min diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index eba2f7f4..ab11be37 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -361,10 +361,10 @@ { 5, TD, printargs, "pwritev" }, /* 330 */ { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 331 */ { 5, TD, printargs, "perf_event_open"}, /* 332 */ - { 5, 0, printargs, "SYS_333" }, /* 333 */ - { 5, 0, printargs, "SYS_334" }, /* 334 */ - { 5, 0, printargs, "SYS_335" }, /* 335 */ - { 5, 0, printargs, "SYS_336" }, /* 336 */ + { 0, 0, sys_get_thread_area, "get_thread_area"}, /* 333 */ + { 1, 0, sys_set_thread_area, "set_thread_area"}, /* 334 */ + { 6, 0, printargs, "atomic_comxchg_32"}, /* 335 */ + { 0, 0, printargs, "atomic_barrier"}, /* 336 */ { 5, 0, printargs, "SYS_337" }, /* 337 */ { 5, 0, printargs, "SYS_338" }, /* 338 */ { 5, 0, printargs, "SYS_339" }, /* 339 */ diff --git a/mem.c b/mem.c index d55cd695..ec5707a3 100644 --- a/mem.c +++ b/mem.c @@ -710,6 +710,26 @@ struct tcb *tcp; } #endif /* LINUX && __i386__ */ +#if defined(LINUX) && defined(M68K) + +int +sys_set_thread_area(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) + tprintf("%#lx", tcp->u_arg[0]); + return 0; + +} + +int +sys_get_thread_area(tcp) +struct tcb *tcp; +{ + return RVAL_HEX; +} +#endif + #if defined(LINUX) int sys_remap_file_pages(tcp)