Le 20/06/2016 à 16:50, Peter Maydell a écrit : > Support the F_GETPIPE_SZ and F_SETPIPE_SZ fcntl operations. > > Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Laurent Vivier <[email protected]> > --- > linux-user/strace.c | 7 +++++++ > linux-user/syscall.c | 6 ++++++ > linux-user/syscall_defs.h | 2 ++ > 3 files changed, 15 insertions(+) > > diff --git a/linux-user/strace.c b/linux-user/strace.c > index 4046b81..6ef5d38 100644 > --- a/linux-user/strace.c > +++ b/linux-user/strace.c > @@ -918,6 +918,13 @@ print_fcntl(const struct syscallname *name, > case TARGET_F_GETLEASE: > gemu_log("F_GETLEASE"); > break; > + case TARGET_F_SETPIPE_SZ: > + gemu_log("F_SETPIPE_SZ,"); > + print_raw_param(TARGET_ABI_FMT_ld, arg2, 1); > + break; > + case TARGET_F_GETPIPE_SZ: > + gemu_log("F_GETPIPE_SZ"); > + break; > case TARGET_F_DUPFD_CLOEXEC: > gemu_log("F_DUPFD_CLOEXEC,"); > print_raw_param(TARGET_ABI_FMT_ld, arg2, 1); > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 8065284..719ca20 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -5585,6 +5585,10 @@ static int target_to_host_fcntl_cmd(int cmd) > case TARGET_F_SETOWN_EX: > return F_SETOWN_EX; > #endif > + case TARGET_F_SETPIPE_SZ: > + return F_SETPIPE_SZ; > + case TARGET_F_GETPIPE_SZ: > + return F_GETPIPE_SZ; > default: > return -TARGET_EINVAL; > } > @@ -5822,6 +5826,8 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg) > 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; > > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index 6ee9251..420463b 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -2166,6 +2166,8 @@ struct target_statfs64 { > #define TARGET_F_SETLEASE (TARGET_F_LINUX_SPECIFIC_BASE + 0) > #define TARGET_F_GETLEASE (TARGET_F_LINUX_SPECIFIC_BASE + 1) > #define TARGET_F_DUPFD_CLOEXEC (TARGET_F_LINUX_SPECIFIC_BASE + 6) > +#define TARGET_F_SETPIPE_SZ (TARGET_F_LINUX_SPECIFIC_BASE + 7) > +#define TARGET_F_GETPIPE_SZ (TARGET_F_LINUX_SPECIFIC_BASE + 8) > #define TARGET_F_NOTIFY (TARGET_F_LINUX_SPECIFIC_BASE+2) > > #if defined(TARGET_ALPHA) >
