]> xenbits.xensource.com Git - qemu-upstream-4.5-testing.git/commitdiff
linux-user: Support the accept4 socketcall
authorAndré Hentschel <nerv@dawncrow.de>
Mon, 6 Jan 2014 19:18:52 +0000 (20:18 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Fri, 10 Jan 2014 06:51:36 +0000 (08:51 +0200)
Cc: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Erik de Castro Lopo <erikd@mega-nerd.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/syscall.c
linux-user/syscall_defs.h

index efd1453987b0856c359ea2947138c02e95987de2..0ac05b85f2d088153479efd42c18488f540ebead 100644 (file)
@@ -2245,6 +2245,22 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
             ret = do_accept4(sockfd, target_addr, target_addrlen, 0);
         }
         break;
+    case SOCKOP_accept4:
+        {
+            abi_ulong sockfd;
+            abi_ulong target_addr, target_addrlen;
+            abi_ulong flags;
+
+            if (get_user_ual(sockfd, vptr)
+                || get_user_ual(target_addr, vptr + n)
+                || get_user_ual(target_addrlen, vptr + 2 * n)
+                || get_user_ual(flags, vptr + 3 * n)) {
+                return -TARGET_EFAULT;
+            }
+
+            ret = do_accept4(sockfd, target_addr, target_addrlen, flags);
+        }
+        break;
     case SOCKOP_getsockname:
         {
             abi_ulong sockfd;
index cf08db5a234c92b552625af57085729fa22fdb12..ae30476217fc29bcb8468b6d18e6e0c18b550c1f 100644 (file)
@@ -27,6 +27,7 @@
 #define SOCKOP_getsockopt       15
 #define SOCKOP_sendmsg          16
 #define SOCKOP_recvmsg          17
+#define SOCKOP_accept4          18
 
 #define IPCOP_semop            1
 #define IPCOP_semget           2