qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]