#include <sys/eventfd.h> | |
#include <unistd.h> | |
#include <errno.h> | |
#include "syscall.h" | |
int eventfd(unsigned int count, int flags) { | |
int r = __syscall(SYS_eventfd2, count, flags); | |
#ifdef SYS_eventfd | |
if (r == -ENOSYS && !flags) | |
r = __syscall(SYS_eventfd, count); | |
#endif | |
return __syscall_ret(r); | |
} | |
int eventfd_read(int fd, eventfd_t* value) { | |
return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1; | |
} | |
int eventfd_write(int fd, eventfd_t value) { | |
return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1; | |
} |