diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2010-10-26 10:39:22 +0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-10-30 08:02:37 +0000 |
commit | 949d31e665e9847b2a8f24a916abd96e79353535 (patch) | |
tree | 091a23bf1fa7fbe0c8cb205580b061c63f867d31 | |
parent | 70e72ce45e1f06415b5ec28439c2a87a72e5aad3 (diff) |
We only support eventfd under POSIX, move qemu_eventfd() to os-posix.c
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | os-posix.c | 32 | ||||
-rw-r--r-- | osdep.c | 34 |
2 files changed, 32 insertions, 34 deletions
diff --git a/os-posix.c b/os-posix.c index 6321e990c5..612b641737 100644 --- a/os-posix.c +++ b/os-posix.c @@ -43,6 +43,10 @@ #include <sys/prctl.h> #endif +#ifdef CONFIG_EVENTFD +#include <sys/eventfd.h> +#endif + static struct passwd *user_pwd; static const char *chroot_dir; static int daemonize; @@ -329,3 +333,31 @@ void os_set_line_buffering(void) { setvbuf(stdout, NULL, _IOLBF, 0); } + +/* + * Creates an eventfd that looks like a pipe and has EFD_CLOEXEC set. + */ +int qemu_eventfd(int fds[2]) +{ +#ifdef CONFIG_EVENTFD + int ret; + + ret = eventfd(0, 0); + if (ret >= 0) { + fds[0] = ret; + qemu_set_cloexec(ret); + if ((fds[1] = dup(ret)) == -1) { + close(ret); + return -1; + } + qemu_set_cloexec(fds[1]); + return 0; + } + + if (errno != ENOSYS) { + return -1; + } +#endif + + return qemu_pipe(fds); +} @@ -44,10 +44,6 @@ extern int madvise(caddr_t, size_t, int); #endif -#ifdef CONFIG_EVENTFD -#include <sys/eventfd.h> -#endif - #ifdef _WIN32 #include <windows.h> #elif defined(CONFIG_BSD) @@ -207,36 +203,6 @@ ssize_t qemu_write_full(int fd, const void *buf, size_t count) return total; } -#ifndef _WIN32 -/* - * Creates an eventfd that looks like a pipe and has EFD_CLOEXEC set. - */ -int qemu_eventfd(int fds[2]) -{ -#ifdef CONFIG_EVENTFD - int ret; - - ret = eventfd(0, 0); - if (ret >= 0) { - fds[0] = ret; - qemu_set_cloexec(ret); - if ((fds[1] = dup(ret)) == -1) { - close(ret); - return -1; - } - qemu_set_cloexec(fds[1]); - return 0; - } - - if (errno != ENOSYS) { - return -1; - } -#endif - - return qemu_pipe(fds); -} -#endif - /* * Opens a socket with FD_CLOEXEC set */ |