summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2014-04-09 12:30:38 +0000
committerDmitry V. Levin <ldv@altlinux.org>2014-04-09 12:37:01 +0000
commitf94e84780e96221a4b3e8eb39bfa2d227d367f69 (patch)
treeb23f14386e54dcc9acbf057cd8f292a3e2993241 /process.c
parent44655a451e84c518878b4ff19319ad5cfc666a82 (diff)
downloadstrace-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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/process.c b/process.c
index 600a86b1c..963d3b1ec 100644
--- a/process.c
+++ b/process.c
@@ -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))