diff options
Diffstat (limited to 'lib/libc/sys/eventfd')
| -rw-r--r-- | lib/libc/sys/eventfd/Kbuild | 3 | ||||
| -rw-r--r-- | lib/libc/sys/eventfd/eventfd.c | 6 | ||||
| -rw-r--r-- | lib/libc/sys/eventfd/eventfd_read.c | 8 | ||||
| -rw-r--r-- | lib/libc/sys/eventfd/eventfd_write.c | 8 |
4 files changed, 25 insertions, 0 deletions
diff --git a/lib/libc/sys/eventfd/Kbuild b/lib/libc/sys/eventfd/Kbuild new file mode 100644 index 00000000..ad7a3422 --- /dev/null +++ b/lib/libc/sys/eventfd/Kbuild @@ -0,0 +1,3 @@ +obj-y += eventfd.o +obj-y += eventfd_read.o +obj-y += eventfd_write.o diff --git a/lib/libc/sys/eventfd/eventfd.c b/lib/libc/sys/eventfd/eventfd.c new file mode 100644 index 00000000..b0fb5d86 --- /dev/null +++ b/lib/libc/sys/eventfd/eventfd.c @@ -0,0 +1,6 @@ +#include <syscall.h> + +int eventfd(unsigned int initval, int flags) +{ + return syscall(eventfd2, initval, flags); +} diff --git a/lib/libc/sys/eventfd/eventfd_read.c b/lib/libc/sys/eventfd/eventfd_read.c new file mode 100644 index 00000000..78d73623 --- /dev/null +++ b/lib/libc/sys/eventfd/eventfd_read.c @@ -0,0 +1,8 @@ +#include <sys/eventfd.h> +#include <syscall.h> +#include <unistd.h> + +int eventfd_read(int fildes, eventfd_t *value) +{ + return (sizeof(*value) == read(fildes, value, sizeof(*value))) ? 0 : -1; +} diff --git a/lib/libc/sys/eventfd/eventfd_write.c b/lib/libc/sys/eventfd/eventfd_write.c new file mode 100644 index 00000000..9c89b388 --- /dev/null +++ b/lib/libc/sys/eventfd/eventfd_write.c @@ -0,0 +1,8 @@ +#include <sys/eventfd.h> +#include <syscall.h> +#include <unistd.h> + +int eventfd_write(int fildes, eventfd_t value) +{ + return (sizeof(value) == write(fildes, &value, sizeof(value))) ? 0 : -1; +} |
