linux-user: Unconditionally use pipe2() syscall
The pipe2() syscall is available on all Linux platforms since kernel 2.6.27, so use it unconditionally to emulate pipe() and pipe2(). Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <YtbZ2ojisTnzxN9Y@p100> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
bd4b7fd6ba
commit
499d805537
@ -1586,21 +1586,12 @@ static abi_long do_ppoll(abi_long arg1, abi_long arg2, abi_long arg3,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static abi_long do_pipe2(int host_pipe[], int flags)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_PIPE2
|
|
||||||
return pipe2(host_pipe, flags);
|
|
||||||
#else
|
|
||||||
return -ENOSYS;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static abi_long do_pipe(CPUArchState *cpu_env, abi_ulong pipedes,
|
static abi_long do_pipe(CPUArchState *cpu_env, abi_ulong pipedes,
|
||||||
int flags, int is_pipe2)
|
int flags, int is_pipe2)
|
||||||
{
|
{
|
||||||
int host_pipe[2];
|
int host_pipe[2];
|
||||||
abi_long ret;
|
abi_long ret;
|
||||||
ret = flags ? do_pipe2(host_pipe, flags) : pipe(host_pipe);
|
ret = pipe2(host_pipe, flags);
|
||||||
|
|
||||||
if (is_error(ret))
|
if (is_error(ret))
|
||||||
return get_errno(ret);
|
return get_errno(ret);
|
||||||
|
@ -2026,15 +2026,6 @@ config_host_data.set('CONFIG_OPEN_BY_HANDLE', cc.links(gnu_source_prefix + '''
|
|||||||
#else
|
#else
|
||||||
int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
|
int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
|
||||||
#endif'''))
|
#endif'''))
|
||||||
config_host_data.set('CONFIG_PIPE2', cc.links(gnu_source_prefix + '''
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
int pipefd[2];
|
|
||||||
return pipe2(pipefd, O_CLOEXEC);
|
|
||||||
}'''))
|
|
||||||
config_host_data.set('CONFIG_POSIX_MADVISE', cc.links(gnu_source_prefix + '''
|
config_host_data.set('CONFIG_POSIX_MADVISE', cc.links(gnu_source_prefix + '''
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user