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>
This commit is contained in:
parent
70e72ce45e
commit
949d31e665
32
os-posix.c
32
os-posix.c
@ -43,6 +43,10 @@
|
|||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_EVENTFD
|
||||||
|
#include <sys/eventfd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct passwd *user_pwd;
|
static struct passwd *user_pwd;
|
||||||
static const char *chroot_dir;
|
static const char *chroot_dir;
|
||||||
static int daemonize;
|
static int daemonize;
|
||||||
@ -329,3 +333,31 @@ void os_set_line_buffering(void)
|
|||||||
{
|
{
|
||||||
setvbuf(stdout, NULL, _IOLBF, 0);
|
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);
|
||||||
|
}
|
||||||
|
34
osdep.c
34
osdep.c
@ -44,10 +44,6 @@
|
|||||||
extern int madvise(caddr_t, size_t, int);
|
extern int madvise(caddr_t, size_t, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_EVENTFD
|
|
||||||
#include <sys/eventfd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#elif defined(CONFIG_BSD)
|
#elif defined(CONFIG_BSD)
|
||||||
@ -207,36 +203,6 @@ ssize_t qemu_write_full(int fd, const void *buf, size_t count)
|
|||||||
return total;
|
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
|
* Opens a socket with FD_CLOEXEC set
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user