linux-user/syscall.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
Map signal numbers in fcntl F_SETSIG and F_GETSIG.
Signed-off-by: Timothy E Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
---
linux-user/syscall.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 945fc25279..8456bad109 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6583,10 +6583,16 @@ static abi_long do_fcntl(int fd, int cmd,
abi_ulong arg)
break;
#endif
- case TARGET_F_SETOWN:
- case TARGET_F_GETOWN:
case TARGET_F_SETSIG:
+ ret = get_errno(safe_fcntl(fd, host_cmd,
target_to_host_signal(arg)));
+ break;
+
case TARGET_F_GETSIG:
+ ret = host_to_target_signal(get_errno(safe_fcntl(fd, host_cmd,
arg)));
+ break;
+
+ case TARGET_F_SETOWN:
+ case TARGET_F_GETOWN:
case TARGET_F_SETLEASE:
case TARGET_F_GETLEASE:
case TARGET_F_SETPIPE_SZ:
--
2.25.1
Le 29/07/2020 à 22:06, Timothy Baldwin a écrit : > Map signal numbers in fcntl F_SETSIG and F_GETSIG. > > Signed-off-by: Timothy E Baldwin <T.E.Baldwin99@members.leeds.ac.uk> > --- > linux-user/syscall.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 945fc25279..8456bad109 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -6583,10 +6583,16 @@ static abi_long do_fcntl(int fd, int cmd, > abi_ulong arg) > break; > #endif > > - case TARGET_F_SETOWN: > - case TARGET_F_GETOWN: > case TARGET_F_SETSIG: > + ret = get_errno(safe_fcntl(fd, host_cmd, > target_to_host_signal(arg))); > + break; > + > case TARGET_F_GETSIG: > + ret = host_to_target_signal(get_errno(safe_fcntl(fd, host_cmd, > arg))); > + break; > + > + case TARGET_F_SETOWN: > + case TARGET_F_GETOWN: > case TARGET_F_SETLEASE: > case TARGET_F_GETLEASE: > case TARGET_F_SETPIPE_SZ: Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Le 29/07/2020 à 22:06, Timothy Baldwin a écrit : > Map signal numbers in fcntl F_SETSIG and F_GETSIG. > > Signed-off-by: Timothy E Baldwin <T.E.Baldwin99@members.leeds.ac.uk> > --- > linux-user/syscall.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 945fc25279..8456bad109 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -6583,10 +6583,16 @@ static abi_long do_fcntl(int fd, int cmd, > abi_ulong arg) > break; > #endif > > - case TARGET_F_SETOWN: > - case TARGET_F_GETOWN: > case TARGET_F_SETSIG: > + ret = get_errno(safe_fcntl(fd, host_cmd, > target_to_host_signal(arg))); > + break; > + > case TARGET_F_GETSIG: > + ret = host_to_target_signal(get_errno(safe_fcntl(fd, host_cmd, > arg))); > + break; > + > + case TARGET_F_SETOWN: > + case TARGET_F_GETOWN: > case TARGET_F_SETLEASE: > case TARGET_F_GETLEASE: > case TARGET_F_SETPIPE_SZ: Applied to my linux-user-for-5.2 branch. Thanks, Laurent
© 2016 - 2024 Red Hat, Inc.