diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2010-10-26 10:39:21 +0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-10-30 08:02:37 +0000 |
commit | 70e72ce45e1f06415b5ec28439c2a87a72e5aad3 (patch) | |
tree | 9773bc8999946a914c0c63e73bcf195969054935 /oslib-posix.c | |
parent | 9549e764bdc24b085cb1bb87400bf6ef79ae9eb1 (diff) |
qemu_pipe() is used only by POSIX code, so move to oslib-posix.c
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'oslib-posix.c')
-rw-r--r-- | oslib-posix.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/oslib-posix.c b/oslib-posix.c index aebe3ac043..ad44b17637 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; +} |