support linux kernel apis (new archs) with old syscalls removed
[musl] / src / linux / eventfd.c
1 #include <sys/eventfd.h>
2 #include <unistd.h>
3 #include "syscall.h"
4
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
14 int eventfd_read(int fd, eventfd_t *value)
15 {
16         return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1;
17 }
18
19 int eventfd_write(int fd, eventfd_t value)
20 {
21         return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1;
22 }