[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 20/33] linux-user: Split out getpid, getxpid, lseek
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 20/33] linux-user: Split out getpid, getxpid, lseek |
Date: |
Fri, 1 Jun 2018 00:30:37 -0700 |
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/syscall.c | 45 +++++++++++++++++++++++++++++---------------
1 file changed, 30 insertions(+), 15 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 6a701ea8f6..b568144369 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8106,6 +8106,21 @@ IMPL(fork)
}
#endif
+#ifdef TARGET_NR_getpid
+IMPL(getpid)
+{
+ return get_errno(getpid());
+}
+#endif
+
+#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
+IMPL(getxpid)
+{
+ ((CPUAlphaState *)cpu_env)->ir[IR_A4] = getppid();
+ return get_errno(getpid());
+}
+#endif
+
#ifdef TARGET_NR_link
IMPL(link)
{
@@ -8143,6 +8158,14 @@ IMPL(linkat)
}
#endif
+IMPL(lseek)
+{
+ if (is_hostfd(arg1)) {
+ return -TARGET_EBADF;
+ }
+ return get_errno(lseek(arg1, arg2, arg3));
+}
+
#ifdef TARGET_NR_mknod
IMPL(mknod)
{
@@ -8460,21 +8483,6 @@ IMPL(everything_else)
char *fn;
switch(num) {
- case TARGET_NR_lseek:
- if (is_hostfd(arg1)) {
- return -TARGET_EBADF;
- }
- return get_errno(lseek(arg1, arg2, arg3));
-#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
- /* Alpha specific */
- case TARGET_NR_getxpid:
- ((CPUAlphaState *)cpu_env)->ir[IR_A4] = getppid();
- return get_errno(getpid());
-#endif
-#ifdef TARGET_NR_getpid
- case TARGET_NR_getpid:
- return get_errno(getpid());
-#endif
case TARGET_NR_mount:
{
/* need to look at the data field */
@@ -12869,12 +12877,19 @@ static impl_fn * const syscall_table[] = {
#ifdef TARGET_NR_fork
[TARGET_NR_fork] = impl_fork,
#endif
+#ifdef TARGET_NR_getpid
+ [TARGET_NR_getpid] = impl_getpid,
+#endif
+#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
+ [TARGET_NR_getxpid] = impl_getxpid,
+#endif
#ifdef TARGET_NR_link
[TARGET_NR_link] = impl_link,
#endif
#if defined(TARGET_NR_linkat)
[TARGET_NR_linkat] = impl_linkat,
#endif
+ [TARGET_NR_lseek] = impl_lseek,
#ifdef TARGET_NR_mknod
[TARGET_NR_mknod] = impl_mknod,
#endif
--
2.17.0
- [Qemu-devel] [PATCH 02/33] linux-user: Relax single exit from "break", (continued)
- [Qemu-devel] [PATCH 02/33] linux-user: Relax single exit from "break", Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 11/33] linux-user: Split out execve, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 14/33] linux-user: Split out open_to_handle_at, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 15/33] linux-user: Split out creat, fork, waitid, waitpid, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 13/33] linux-user: Split out name_to_handle_at, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 16/33] linux-user: Split out link, linkat, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 17/33] linux-user: Split out unlink, unlinkat, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 18/33] linux-user: Split out chdir, mknod, mknodat, time, chmod, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 19/33] linux-user: Remove all unimplemented entries, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 20/33] linux-user: Split out getpid, getxpid, lseek,
Richard Henderson <=
- [Qemu-devel] [PATCH 21/33] linux-user: Split out mount, umount, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 22/33] linux-user: Split out alarm, pause, stime, utime, utimes, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 23/33] linux-user: Split out access, faccessat, futimesat, kill, nice, sync, syncfs, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 26/33] linux-user: Split out acct, pipe, pipe2, times, umount2, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 25/33] linux-user: Split out dup, mkdir, mkdirat, rmdir, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 24/33] linux-user: Split out rename, renameat, renameat2, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 27/33] linux-user: Split out ioctl, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 28/33] linux-user: Split out chroot, dup2, dup3, fcntl, setpgid, umask, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 29/33] linux-user: Split out getpgrp, getppid, setsid, Richard Henderson, 2018/06/01
- [Qemu-devel] [PATCH 32/33] linux-user: Split out rt_sigpending, rt_sigsuspend, sigpending, sigsuspend, Richard Henderson, 2018/06/01