diff options
| author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2014-07-05 18:09:19 +0200 | 
|---|---|---|
| committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-09-26 18:41:16 +0200 | 
| commit | 628943bcfde03547b9f83d04578bd1e8aa5d23fc (patch) | |
| tree | 653a8b1775f50861f63e0dbd18268a11334a73ed | |
| parent | bd3eaf83ef1b4954b6c0e7ba8bbdd29b2cd4a833 (diff) | |
Add eventfd_read() and eventfd_write()
Signed-off-by: Khem Raj <raj.khem@gmail.com>
| -rw-r--r-- | libc/sysdeps/linux/common/Makefile.in | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/eventfd_read.c | 27 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/eventfd_write.c | 28 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/sys/eventfd.h | 4 | 
4 files changed, 57 insertions, 4 deletions
| diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in index a175ab64c..9d41771e2 100644 --- a/libc/sysdeps/linux/common/Makefile.in +++ b/libc/sysdeps/linux/common/Makefile.in @@ -25,6 +25,8 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \  	capset.c \  	dup3.c \  	eventfd.c \ +	eventfd_read.c \ +	eventfd_write.c \  	inotify.c \  	ioperm.c \  	iopl.c \ diff --git a/libc/sysdeps/linux/common/eventfd_read.c b/libc/sysdeps/linux/common/eventfd_read.c new file mode 100644 index 000000000..75f2aaa11 --- /dev/null +++ b/libc/sysdeps/linux/common/eventfd_read.c @@ -0,0 +1,27 @@ +/* Copyright (C) 2007-2014 Free Software Foundation, Inc. +   This file is part of the GNU C Library. + +   The GNU C Library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version. + +   The GNU C Library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, see +   <http://www.gnu.org/licenses/>.  */ + +#include <errno.h> +#include <unistd.h> +#include <sys/eventfd.h> + + +int +eventfd_read (int fd, eventfd_t *value) +{ +  return read (fd, value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0; +} diff --git a/libc/sysdeps/linux/common/eventfd_write.c b/libc/sysdeps/linux/common/eventfd_write.c new file mode 100644 index 000000000..e1509cf5c --- /dev/null +++ b/libc/sysdeps/linux/common/eventfd_write.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2007-2014 Free Software Foundation, Inc. +   This file is part of the GNU C Library. + +   The GNU C Library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version. + +   The GNU C Library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, see +   <http://www.gnu.org/licenses/>.  */ + +#include <errno.h> +#include <unistd.h> +#include <sys/eventfd.h> + + +int +eventfd_write (int fd, eventfd_t value) +{ +  return write (fd, &value, +		sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0; +} diff --git a/libc/sysdeps/linux/common/sys/eventfd.h b/libc/sysdeps/linux/common/sys/eventfd.h index 1bf785f32..91b265b2c 100644 --- a/libc/sysdeps/linux/common/sys/eventfd.h +++ b/libc/sysdeps/linux/common/sys/eventfd.h @@ -33,16 +33,12 @@ __BEGIN_DECLS     value to COUNT.  */  extern int eventfd (int __count, int __flags) __THROW; -#if 0 /* not (yet) implemented in uClibc */ -  /* Read event counter and possibly wait for events.  */  extern int eventfd_read (int __fd, eventfd_t *__value);  /* Increment event counter.  */  extern int eventfd_write (int __fd, eventfd_t __value); -#endif -  __END_DECLS  #endif /* sys/eventfd.h */ | 
