diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2014-04-09 12:30:38 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2014-04-09 12:37:01 +0000 |
commit | f94e84780e96221a4b3e8eb39bfa2d227d367f69 (patch) | |
tree | b23f14386e54dcc9acbf057cd8f292a3e2993241 /process.c | |
parent | 44655a451e84c518878b4ff19319ad5cfc666a82 (diff) | |
download | strace-f94e84780e96221a4b3e8eb39bfa2d227d367f69.tar.gz |
x32: decode clone LDT user_desc entries for x86 processes
* mem.c [X32]: Include asm/ldt.h.
[X32] (print_ldt_entry, sys_modify_ldt, sys_set_thread_area,
sys_get_thread_area): Define.
* process.c [X32]: Include asm/ldt.h.
(sys_clone) [X32]: Decode LDT entry if current_personality == 1.
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -491,13 +491,13 @@ static const struct xlat clone_flags[] = { XLAT_END }; -#if defined I386 || defined X86_64 +#if defined I386 || defined X86_64 || defined X32 # include <asm/ldt.h> # ifdef HAVE_STRUCT_USER_DESC # define modify_ldt_ldt_s user_desc # endif extern void print_ldt_entry(); -#endif /* I386 || X86_64 */ +#endif /* I386 || X86_64 || X32 */ #if defined IA64 # define ARG_FLAGS 0 @@ -556,7 +556,7 @@ sys_clone(struct tcb *tcp) if (flags & CLONE_PARENT_SETTID) tprintf(", parent_tidptr=%#lx", tcp->u_arg[ARG_PTID]); if (flags & CLONE_SETTLS) { -#if defined I386 || defined X86_64 +#if defined I386 || defined X86_64 || defined X32 # ifndef I386 if (current_personality == 1) # endif @@ -572,7 +572,7 @@ sys_clone(struct tcb *tcp) } } else -#endif /* I386 || X86_64 */ +#endif /* I386 || X86_64 || X32 */ tprintf(", tls=%#lx", tcp->u_arg[ARG_TLS]); } if (flags & (CLONE_CHILD_SETTID|CLONE_CHILD_CLEARTID)) |