mirror of
https://github.com/qemu/qemu.git
synced 2024-11-27 13:53:45 +08:00
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>
|
||||
#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);
|
||||
}
|
||||
|
34
osdep.c
34
osdep.c
@ -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
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user