[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 041/108] linux-user: Split out fchmod, fchmodat,
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v2 041/108] linux-user: Split out fchmod, fchmodat, ftruncate, truncate |
Date: |
Sat, 9 Jun 2018 17:01:13 -1000 |
All targets define fchmodat; remove the ifdef.
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/syscall.c | 58 ++++++++++++++++++++++++++++++--------------
1 file changed, 40 insertions(+), 18 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index f79aebe869..df8422cd3a 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8079,6 +8079,24 @@ IMPL(faccessat)
return ret;
}
+IMPL(fchmod)
+{
+ return get_errno(fchmod(arg1, arg2));
+}
+
+IMPL(fchmodat)
+{
+ char *p = lock_user_string(arg2);
+ abi_long ret;
+
+ if (!p) {
+ return -TARGET_EFAULT;
+ }
+ ret = get_errno(fchmodat(arg1, p, arg3, 0));
+ unlock_user(p, arg2, 0);
+ return ret;
+}
+
#ifdef TARGET_NR_fcntl
IMPL(fcntl)
{
@@ -8093,6 +8111,11 @@ IMPL(fork)
}
#endif
+IMPL(ftruncate)
+{
+ return get_errno(ftruncate(arg1, arg2));
+}
+
#ifdef TARGET_NR_futimesat
IMPL(futimesat)
{
@@ -9563,6 +9586,19 @@ IMPL(times)
return host_to_target_clock_t(ret);
}
+IMPL(truncate)
+{
+ char *p = lock_user_string(arg1);
+ abi_long ret;
+
+ if (!p) {
+ return -TARGET_EFAULT;
+ }
+ ret = get_errno(truncate(p, arg2));
+ unlock_user(p, arg1, 0);
+ return ret;
+}
+
IMPL(umask)
{
return get_errno(umask(arg1));
@@ -9746,24 +9782,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned num,
abi_long arg1,
void *p;
switch(num) {
- case TARGET_NR_truncate:
- if (!(p = lock_user_string(arg1)))
- return -TARGET_EFAULT;
- ret = get_errno(truncate(p, arg2));
- unlock_user(p, arg1, 0);
- return ret;
- case TARGET_NR_ftruncate:
- return get_errno(ftruncate(arg1, arg2));
- case TARGET_NR_fchmod:
- return get_errno(fchmod(arg1, arg2));
-#if defined(TARGET_NR_fchmodat)
- case TARGET_NR_fchmodat:
- if (!(p = lock_user_string(arg2)))
- return -TARGET_EFAULT;
- ret = get_errno(fchmodat(arg1, p, arg3, 0));
- unlock_user(p, arg2, 0);
- return ret;
-#endif
case TARGET_NR_getpriority:
/* Note that negative values are valid for getpriority, so we must
differentiate based on errno settings. */
@@ -12719,12 +12737,15 @@ static impl_fn *syscall_table(unsigned num)
SYSCALL(execve);
SYSCALL(exit);
SYSCALL(faccessat);
+ SYSCALL(fchmod);
+ SYSCALL(fchmodat);
#ifdef TARGET_NR_fcntl
SYSCALL(fcntl);
#endif
#ifdef TARGET_NR_fork
SYSCALL(fork);
#endif
+ SYSCALL(ftruncate);
#ifdef TARGET_NR_futimesat
SYSCALL(futimesat);
#endif
@@ -12870,6 +12891,7 @@ static impl_fn *syscall_table(unsigned num)
SYSCALL(time);
#endif
SYSCALL(times);
+ SYSCALL(truncate);
SYSCALL(umask);
#ifdef TARGET_NR_umount
SYSCALL(umount);
--
2.17.1
- [Qemu-devel] [PATCH v2 031/108] linux-user: Split out rt_sigpending, rt_sigsuspend, sigpending, sigsuspend, (continued)
- [Qemu-devel] [PATCH v2 031/108] linux-user: Split out rt_sigpending, rt_sigsuspend, sigpending, sigsuspend, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 032/108] linux-user: Split out rt_sigqueueinfo, rt_sigtimedwait, rt_tgsigqueueinfo, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 033/108] linux-user: Split out rt_sigreturn, sethostname, setrlimit, sigreturn, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 036/108] linux-user: Split out symlink, symlinkat, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 035/108] linux-user: Split out select, pselect6, newselect, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 034/108] linux-user: Split out getrlimit, getrusage, gettimeofday, settimeofday, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 037/108] linux-user: Split out readlink, readlinkat, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 038/108] linux-user: Split out mmap, mmap2, reboot, swapon, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 039/108] linux-user: Split out mprotect, mremap, msync, munmap, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 040/108] linux-user: Split out mlock, mlockall, munlock, munlockall, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 041/108] linux-user: Split out fchmod, fchmodat, ftruncate, truncate,
Richard Henderson <=
- [Qemu-devel] [PATCH v2 042/108] linux-user: Split out fstatfs, fstatfs64, statfs, statfs64, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 043/108] linux-user: Split out getpriority, setpriority, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 044/108] linux-user: Split out socketcall, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 045/108] linux-user: Split out accept, accept4, bind, connect, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 046/108] linux-user: Split out 7 syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 047/108] linux-user: Split out recvmmsg, send, sendmmsg, sendmsg, sendto, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 048/108] linux-user: Split out getrandom, shutdown, setsockopt, socket, socketpair, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 049/108] linux-user: Fix stub gettid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 050/108] linux-user: Split out getitimer, setitimer, syslog, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 051/108] linux-user: Split out fstat, lstat, stat, Richard Henderson, 2018/06/09
- Prev by Date:
[Qemu-devel] [PATCH v2 040/108] linux-user: Split out mlock, mlockall, munlock, munlockall
- Next by Date:
[Qemu-devel] [PATCH v2 042/108] linux-user: Split out fstatfs, fstatfs64, statfs, statfs64
- Previous by thread:
[Qemu-devel] [PATCH v2 040/108] linux-user: Split out mlock, mlockall, munlock, munlockall
- Next by thread:
[Qemu-devel] [PATCH v2 042/108] linux-user: Split out fstatfs, fstatfs64, statfs, statfs64
- Index(es):