eventfd.c revision defd162212de3789d2268a1f3339c2a6097fa825
1#include <sys/eventfd.h>
2#include <unistd.h>
3
4/* We duplicate the GLibc error semantics, which are poorly defined
5 * if the read() or write() does not return the proper number of bytes.
6 */
7int eventfd_read(int fd, eventfd_t *counter)
8{
9    int ret = read(fd, counter, sizeof(*counter));
10
11    if (ret == sizeof(*counter))
12        return 0;
13
14    return -1;
15}
16
17int eventfd_write(int fd, eventfd_t counter)
18{
19    int ret = write(fd, &counter, sizeof(counter));
20
21    if (ret == sizeof(counter))
22        return 0;
23
24    return -1;
25}
26