Message ID | 1466434237-19334-4-git-send-email-peter.maydell@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 <peter.maydell@linaro.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> > --- > 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) >
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)
Support the F_GETPIPE_SZ and F_SETPIPE_SZ fcntl operations. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- linux-user/strace.c | 7 +++++++ linux-user/syscall.c | 6 ++++++ linux-user/syscall_defs.h | 2 ++ 3 files changed, 15 insertions(+)