From 70e72ce45e1f06415b5ec28439c2a87a72e5aad3 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 26 Oct 2010 10:39:21 +0200 Subject: qemu_pipe() is used only by POSIX code, so move to oslib-posix.c Signed-off-by: Jes Sorensen Signed-off-by: Blue Swirl --- oslib-posix.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'oslib-posix.c') diff --git a/oslib-posix.c b/oslib-posix.c index aebe3ac..ad44b17 100644 --- a/oslib-posix.c +++ b/oslib-posix.c @@ -87,3 +87,25 @@ void qemu_set_cloexec(int fd) f = fcntl(fd, F_GETFD); fcntl(fd, F_SETFD, f | FD_CLOEXEC); } + +/* + * Creates a pipe with FD_CLOEXEC set on both file descriptors + */ +int qemu_pipe(int pipefd[2]) +{ + int ret; + +#ifdef CONFIG_PIPE2 + ret = pipe2(pipefd, O_CLOEXEC); + if (ret != -1 || errno != ENOSYS) { + return ret; + } +#endif + ret = pipe(pipefd); + if (ret == 0) { + qemu_set_cloexec(pipefd[0]); + qemu_set_cloexec(pipefd[1]); + } + + return ret; +} -- cgit v1.1