diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2016-06-20 15:50:37 +0100 |
---|---|---|
committer | Riku Voipio <riku.voipio@linaro.org> | 2016-06-26 13:17:21 +0300 |
commit | 7e3b92ece0fff8073772b0e8a7bda41254626b78 (patch) | |
tree | 72adc1e7a786e9db5229680e78acf4c4da51094a /linux-user | |
parent | 4debae6fa57443adf3b390397a069855ee4c4e4d (diff) |
linux-user: Support F_GETPIPE_SZ and F_SETPIPE_SZ fcntls
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>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/strace.c | 7 | ||||
-rw-r--r-- | linux-user/syscall.c | 6 | ||||
-rw-r--r-- | linux-user/syscall_defs.h | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/linux-user/strace.c b/linux-user/strace.c index 4046b81705..6ef5d389fc 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 8163ae803f..b8a0738e5b 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 6ee9251c50..420463bb10 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) |