xref: /third_party/musl/src/linux/eventfd.c (revision 570af302)
1#include <sys/eventfd.h>
2#include <unistd.h>
3#include <errno.h>
4#include "syscall.h"
5#ifdef OHOS_FDTRACK_HOOK_ENABLE
6#include "musl_fdtrack_hook.h"
7#endif
8
9int eventfd(unsigned int count, int flags)
10{
11	int r = __syscall(SYS_eventfd2, count, flags);
12#ifdef SYS_eventfd
13	if (r==-ENOSYS && !flags) r = __syscall(SYS_eventfd, count);
14#endif
15	return __syscall_ret(r);
16}
17
18int eventfd_read(int fd, eventfd_t *value)
19{
20	return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1;
21}
22
23int eventfd_write(int fd, eventfd_t value)
24{
25	return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1;
26}
27