#include <sys/eventfd.h> | |
#include <unistd.h> | |
/* We duplicate the GLibc error semantics, which are poorly defined | |
* if the read() or write() does not return the proper number of bytes. | |
*/ | |
int eventfd_read(int fd, eventfd_t *counter) | |
{ | |
int ret = read(fd, counter, sizeof(*counter)); | |
if (ret == sizeof(*counter)) | |
return 0; | |
return -1; | |
} | |
int eventfd_write(int fd, eventfd_t counter) | |
{ | |
int ret = write(fd, &counter, sizeof(counter)); | |
if (ret == sizeof(counter)) | |
return 0; | |
return -1; | |
} |