[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 091/108] linux-user: Split out set_tid_address, t
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v2 091/108] linux-user: Split out set_tid_address, tgkill, tkill |
Date: |
Sat, 9 Jun 2018 17:02:03 -1000 |
All targets define set_tid_address; remove the ifdef.
Use the bogus syscall method to supply the host syscall.
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/syscall.c | 37 ++++++++++++++++++++++---------------
1 file changed, 22 insertions(+), 15 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1c1e05dc26..8406b9d8d3 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -250,6 +250,9 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4
arg4,type5 arg5, \
#ifndef __NR_gettid
#define __NR_gettid -1
#endif
+#ifndef __NR_set_tid_address
+#define __NR_set_tid_address -1
+#endif
_syscall0(int, gettid)
@@ -278,9 +281,7 @@ _syscall3(int,sys_syslog,int,type,char*,bufp,int,len)
#ifdef __NR_exit_group
_syscall1(int,exit_group,int,error_code)
#endif
-#if defined(TARGET_NR_set_tid_address) && defined(__NR_set_tid_address)
_syscall1(int,set_tid_address,int *,tidptr)
-#endif
#if defined(TARGET_NR_futex) && defined(__NR_futex)
_syscall6(int,sys_futex,int *,uaddr,int,op,int,val,
const struct timespec *,timeout,int *,uaddr2,int,val3)
@@ -11578,6 +11579,11 @@ IMPL(set_thread_area)
}
#endif
+IMPL(set_tid_address)
+{
+ return get_errno(set_tid_address((int *)g2h(arg1)));
+}
+
IMPL(settimeofday)
{
struct timeval tv;
@@ -12210,6 +12216,12 @@ IMPL(syslog)
}
}
+IMPL(tgkill)
+{
+ return get_errno(safe_tgkill((int)arg1, (int)arg2,
+ target_to_host_signal(arg3)));
+}
+
#ifdef TARGET_NR_time
IMPL(time)
{
@@ -12244,6 +12256,11 @@ IMPL(times)
return host_to_target_clock_t(ret);
}
+IMPL(tkill)
+{
+ return get_errno(safe_tkill((int)arg1, target_to_host_signal(arg2)));
+}
+
IMPL(truncate)
{
char *p = lock_user_string(arg1);
@@ -12562,19 +12579,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned
num, abi_long arg1,
void *p;
switch(num) {
-#if defined(TARGET_NR_set_tid_address) && defined(__NR_set_tid_address)
- case TARGET_NR_set_tid_address:
- return get_errno(set_tid_address((int *)g2h(arg1)));
-#endif
-
- case TARGET_NR_tkill:
- return get_errno(safe_tkill((int)arg1, target_to_host_signal(arg2)));
-
- case TARGET_NR_tgkill:
- return get_errno(safe_tgkill((int)arg1, (int)arg2,
- target_to_host_signal(arg3)));
-
-
#if defined(TARGET_NR_utimensat)
case TARGET_NR_utimensat:
{
@@ -13762,6 +13766,7 @@ static impl_fn *syscall_table(unsigned num)
#ifdef TARGET_NR_set_thread_area
SYSCALL(set_thread_area);
#endif
+ SYSCALL(set_tid_address);
SYSCALL(settimeofday);
SYSCALL(setsid);
SYSCALL(setuid);
@@ -13827,10 +13832,12 @@ static impl_fn *syscall_table(unsigned num)
#endif
SYSCALL(sysinfo);
SYSCALL(syslog);
+ SYSCALL(tgkill);
#ifdef TARGET_NR_time
SYSCALL(time);
#endif
SYSCALL(times);
+ SYSCALL(tkill);
SYSCALL(truncate);
#ifdef TARGET_NR_truncate64
SYSCALL(truncate64);
--
2.17.1
- [Qemu-devel] [PATCH v2 081/108] linux-user: Split out getresgid32, getresuid32, setresgid32, setresuid32, (continued)
- [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, 2018/06/09
- [Qemu-devel] [PATCH v2 091/108] linux-user: Split out set_tid_address, tgkill, tkill,
Richard Henderson <=
- [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
- [Qemu-devel] [PATCH v2 101/108] linux-user: Split out prlimit64, Richard Henderson, 2018/06/09