aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2020-05-25 09:59:28 +0200
committerLaurent Vivier <laurent@vivier.eu>2020-06-05 21:23:22 +0200
commit2d92c6827ca01cb4086212a95d9c1b454c252268 (patch)
tree459b4b2dcafcc15c65bb591c6597ecef1c343e86
parent257a7e212d5e518ac53bd6a02a3157cf4594c8b3 (diff)
downloadqemu-2d92c6827ca01cb4086212a95d9c1b454c252268.zip
qemu-2d92c6827ca01cb4086212a95d9c1b454c252268.tar.gz
qemu-2d92c6827ca01cb4086212a95d9c1b454c252268.tar.bz2
linux-user: implement OFD locks
Signed-off-by: Andreas Schwab <schwab@suse.de> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <mvm7dx0cun3.fsf@suse.de> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-rw-r--r--linux-user/generic/fcntl.h4
-rw-r--r--linux-user/syscall.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/linux-user/generic/fcntl.h b/linux-user/generic/fcntl.h
index 9f727d4..c85c5b9 100644
--- a/linux-user/generic/fcntl.h
+++ b/linux-user/generic/fcntl.h
@@ -99,6 +99,10 @@
#define TARGET_F_SETLKW64 14
#endif
+#define TARGET_F_OFD_GETLK 36
+#define TARGET_F_OFD_SETLK 37
+#define TARGET_F_OFD_SETLKW 38
+
#ifndef TARGET_F_SETOWN_EX
#define TARGET_F_SETOWN_EX 15
#define TARGET_F_GETOWN_EX 16
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9ac3af2..2d8125f 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6098,6 +6098,9 @@ static int target_to_host_fcntl_cmd(int cmd)
case TARGET_F_SETFD:
case TARGET_F_GETFL:
case TARGET_F_SETFL:
+ case TARGET_F_OFD_GETLK:
+ case TARGET_F_OFD_SETLK:
+ case TARGET_F_OFD_SETLKW:
ret = cmd;
break;
case TARGET_F_GETLK:
@@ -6383,6 +6386,7 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
break;
case TARGET_F_GETLK64:
+ case TARGET_F_OFD_GETLK:
ret = copy_from_user_flock64(&fl64, arg);
if (ret) {
return ret;
@@ -6394,6 +6398,8 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
break;
case TARGET_F_SETLK64:
case TARGET_F_SETLKW64:
+ case TARGET_F_OFD_SETLK:
+ case TARGET_F_OFD_SETLKW:
ret = copy_from_user_flock64(&fl64, arg);
if (ret) {
return ret;