#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;
}
