qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 4/7] linux-user: Fix fcnt


From: Lena Djokic
Subject: [Qemu-devel] [PATCH v2 4/7] linux-user: Fix fcnt
Date: Thu, 24 Nov 2016 17:08:55 +0100

F_GETSIG and F_SETSIG were implemented with default behaviour which
simply passes given arguments to fcntl syscall, but since those
arguments are signals used for communication between taget and
host we need conversion which is done by using host_to_target_signal
and taget_to_host_signal functions.

Signed-off-by: Lena Djokic <address@hidden>
---
 linux-user/syscall.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 41873ca..1b59a71 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6544,14 +6544,18 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
 
     case TARGET_F_SETOWN:
     case TARGET_F_GETOWN:
-    case TARGET_F_SETSIG:
-    case TARGET_F_GETSIG:
     case TARGET_F_SETLEASE:
     case TARGET_F_GETLEASE:
     case TARGET_F_SETPIPE_SZ:
     case TARGET_F_GETPIPE_SZ:
         ret = get_errno(safe_fcntl(fd, host_cmd, arg));
         break;
+    case TARGET_F_GETSIG:
+        ret = host_to_target_signal(get_errno(fcntl(fd, host_cmd, arg)));
+        break;
+    case TARGET_F_SETSIG:
+        ret = get_errno(fcntl(fd, host_cmd, target_to_host_signal(arg)));
+        break;
 
     default:
         ret = get_errno(safe_fcntl(fd, cmd, arg));
-- 
2.7.4




reply via email to

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