diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2010-05-28 22:28:51 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2010-05-28 22:28:51 +0200 |
commit | 587432273982c136809a6e9182e8ecf674648706 (patch) | |
tree | b458e8e3014d6ece1553b0e74c911353a4614754 | |
parent | ffca9e30d6228532e84adc2cfe18f0ea72d199c5 (diff) | |
download | android_external_strace-587432273982c136809a6e9182e8ecf674648706.tar.gz android_external_strace-587432273982c136809a6e9182e8ecf674648706.tar.bz2 android_external_strace-587432273982c136809a6e9182e8ecf674648706.zip |
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.
-rw-r--r-- | linux/dummy.h | 2 | ||||
-rw-r--r-- | linux/m68k/syscallent.h | 8 | ||||
-rw-r--r-- | mem.c | 20 |
3 files changed, 26 insertions, 4 deletions
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 */ @@ -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) |