2 #include <sys/ptrace.h>
4 #include "uml-config.h"
6 /* TLS support - we basically rely on the host's one.*/
8 /* In TT mode, this should be called only by the tracing thread, and makes sense
9 * only for PTRACE_SET_THREAD_AREA. In SKAS mode, it's used normally.
13 #ifndef PTRACE_GET_THREAD_AREA
14 #define PTRACE_GET_THREAD_AREA 25
17 #ifndef PTRACE_SET_THREAD_AREA
18 #define PTRACE_SET_THREAD_AREA 26
21 int os_set_thread_area(void *data, int pid)
23 struct user_desc *info = data;
26 ret = ptrace(PTRACE_SET_THREAD_AREA, pid, info->entry_number,
27 (unsigned long) info);
33 #ifdef UML_CONFIG_MODE_SKAS
35 int os_get_thread_area(void *data, int pid)
37 struct user_desc *info = data;
40 ret = ptrace(PTRACE_GET_THREAD_AREA, pid, info->entry_number,
41 (unsigned long) info);
49 #ifdef UML_CONFIG_MODE_TT
50 #include "linux/unistd.h"
52 _syscall1(int, get_thread_area, struct user_desc *, u_info);
53 _syscall1(int, set_thread_area, struct user_desc *, u_info);
55 int do_set_thread_area_tt(struct user_desc *info)
59 ret = set_thread_area(info);
66 int do_get_thread_area_tt(struct user_desc *info)
70 ret = get_thread_area(info);
77 #endif /* UML_CONFIG_MODE_TT */