[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 088/108] linux-user: Split out getdomainname, get
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v2 088/108] linux-user: Split out getdomainname, get_thread_area, set_thread_area |
Date: |
Sat, 9 Jun 2018 17:02:00 -1000 |
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/syscall.c | 92 +++++++++++++++++++++++---------------------
1 file changed, 49 insertions(+), 43 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index c37af32bb6..285612dfe5 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9029,6 +9029,21 @@ IMPL(getsockopt)
}
#endif
+#ifdef TARGET_NR_get_thread_area
+IMPL(get_thread_area)
+{
+# if defined(TARGET_I386) && defined(TARGET_ABI32)
+ return do_get_thread_area(cpu_env, arg1);
+# elif defined(TARGET_M68K)
+ CPUState *cpu = ENV_GET_CPU(cpu_env);
+ TaskState *ts = cpu->opaque;
+ return ts->tp_value;
+# else
+ return -TARGET_ENOSYS;
+# endif
+}
+#endif
+
IMPL(gettid)
{
return get_errno(gettid());
@@ -11480,6 +11495,31 @@ IMPL(setsockopt)
}
#endif
+#ifdef TARGET_NR_set_thread_area
+IMPL(set_thread_area)
+{
+# if defined(TARGET_MIPS)
+ ((CPUMIPSState *) cpu_env)->active_tc.CP0_UserLocal = arg1;
+ return 0;
+# elif defined(TARGET_CRIS)
+ if (arg1 & 0xff) {
+ return -TARGET_EINVAL;
+ }
+ ((CPUCRISState *) cpu_env)->pregs[PR_PID] = arg1;
+ return 0;
+# elif defined(TARGET_I386) && defined(TARGET_ABI32)
+ return do_set_thread_area(cpu_env, arg1);
+# elif defined(TARGET_M68K)
+ CPUState *cpu = ENV_GET_CPU(cpu_env);
+ TaskState *ts = cpu->opaque;
+ ts->tp_value = arg1;
+ return 0;
+# else
+ return -TARGET_ENOSYS;
+# endif
+}
+#endif
+
IMPL(settimeofday)
{
struct timeval tv;
@@ -12464,49 +12504,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned
num, abi_long arg1,
void *p;
switch(num) {
-#ifdef TARGET_NR_set_thread_area
- case TARGET_NR_set_thread_area:
-#if defined(TARGET_MIPS)
- ((CPUMIPSState *) cpu_env)->active_tc.CP0_UserLocal = arg1;
- return 0;
-#elif defined(TARGET_CRIS)
- if (arg1 & 0xff)
- ret = -TARGET_EINVAL;
- else {
- ((CPUCRISState *) cpu_env)->pregs[PR_PID] = arg1;
- ret = 0;
- }
- return ret;
-#elif defined(TARGET_I386) && defined(TARGET_ABI32)
- return do_set_thread_area(cpu_env, arg1);
-#elif defined(TARGET_M68K)
- {
- TaskState *ts = cpu->opaque;
- ts->tp_value = arg1;
- return 0;
- }
-#else
- return -TARGET_ENOSYS;
-#endif
-#endif
-#ifdef TARGET_NR_get_thread_area
- case TARGET_NR_get_thread_area:
-#if defined(TARGET_I386) && defined(TARGET_ABI32)
- return do_get_thread_area(cpu_env, arg1);
-#elif defined(TARGET_M68K)
- {
- TaskState *ts = cpu->opaque;
- return ts->tp_value;
- }
-#else
- return -TARGET_ENOSYS;
-#endif
-#endif
-#ifdef TARGET_NR_getdomainname
- case TARGET_NR_getdomainname:
- return -TARGET_ENOSYS;
-#endif
-
#ifdef TARGET_NR_clock_settime
case TARGET_NR_clock_settime:
{
@@ -13391,6 +13388,9 @@ static impl_fn *syscall_table(unsigned num)
#if defined(TARGET_NR_getdents64) && defined(__NR_getdents64)
SYSCALL(getdents64);
#endif
+#ifdef TARGET_NR_getdomainname
+ SYSCALL_WITH(getdomainname, enosys);
+#endif
#ifdef TARGET_NR_getegid
SYSCALL(getegid);
#endif
@@ -13452,6 +13452,9 @@ static impl_fn *syscall_table(unsigned num)
#endif
#ifdef TARGET_NR_getsockopt
SYSCALL(getsockopt);
+#endif
+#ifdef TARGET_NR_get_thread_area
+ SYSCALL(get_thread_area);
#endif
SYSCALL(gettid);
SYSCALL(gettimeofday);
@@ -13748,6 +13751,9 @@ static impl_fn *syscall_table(unsigned num)
SYSCALL(setrlimit);
#ifdef TARGET_NR_setsockopt
SYSCALL(setsockopt);
+#endif
+#ifdef TARGET_NR_set_thread_area
+ SYSCALL(set_thread_area);
#endif
SYSCALL(settimeofday);
SYSCALL(setsid);
--
2.17.1
- [Qemu-devel] [PATCH v2 078/108] linux-user: Split out osf_getsysinfo, osf_setsysinfo, osf_sigprocmask, (continued)
- [Qemu-devel] [PATCH v2 078/108] linux-user: Split out osf_getsysinfo, osf_setsysinfo, osf_sigprocmask, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 081/108] linux-user: Split out getresgid32, getresuid32, setresgid32, setresuid32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid32, setfsuid32, setgid32, setuid32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 083/108] linux-user: Split out mincore, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 084/108] linux-user: Split out fadvise64, fadvise64_64, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 085/108] linux-user: Split out cacheflush, fcntl64, getpagesize, madvise, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 086/108] linux-user: Split out gettid, readahead, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 087/108] linux-user: Split out xattr syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 089/108] linux-user: Split out clock syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 090/108] linux-user: Fix clock_nanosleep, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 088/108] linux-user: Split out getdomainname, get_thread_area, set_thread_area,
Richard Henderson <=
- [Qemu-devel] [PATCH v2 091/108] linux-user: Split out set_tid_address, tgkill, tkill, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 092/108] linux-user: Split out futex, utimensat, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 093/108] linux-user: Remove sys_futex, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 094/108] linux-user: Split out inotify syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 095/108] linux-user: Split out mq syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 096/108] linux-user: Split out splice, tee, vmsplice, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 097/108] linux-user: Split out eventfd, eventfd2, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 099/108] linux-user: Split out signalfd, signalfd4, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 098/108] linux-user: Split out fallocate, sync_file_range/2, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 100/108] linux-user: Split out epoll syscalls, Richard Henderson, 2018/06/09