eventfd.c 531 B

1234567891011121314151617181920212223
  1. #include <sys/eventfd.h>
  2. #include <unistd.h>
  3. #include <errno.h>
  4. #include "syscall.h"
  5. int eventfd(unsigned int count, int flags)
  6. {
  7. int r = __syscall(SYS_eventfd2, count, flags);
  8. #ifdef SYS_eventfd
  9. if (r==-ENOSYS && !flags) r = __syscall(SYS_eventfd, count);
  10. #endif
  11. return __syscall_ret(r);
  12. }
  13. int eventfd_read(int fd, eventfd_t *value)
  14. {
  15. return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1;
  16. }
  17. int eventfd_write(int fd, eventfd_t value)
  18. {
  19. return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1;
  20. }