summaryrefslogtreecommitdiffstats
path: root/main/libc0.9.32/0022-Add-eventfd-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/libc0.9.32/0022-Add-eventfd-support.patch')
-rw-r--r--main/libc0.9.32/0022-Add-eventfd-support.patch118
1 files changed, 118 insertions, 0 deletions
diff --git a/main/libc0.9.32/0022-Add-eventfd-support.patch b/main/libc0.9.32/0022-Add-eventfd-support.patch
new file mode 100644
index 000000000..d42da0120
--- /dev/null
+++ b/main/libc0.9.32/0022-Add-eventfd-support.patch
@@ -0,0 +1,118 @@
+From 000e9aca3ee3f07c934a154fd375c5f3c7f9cc80 Mon Sep 17 00:00:00 2001
+From: Jean-Christian de Rivaz <jc@eclis.ch>
+Date: Mon, 24 Oct 2011 19:07:43 +0200
+Subject: [PATCH] Add eventfd support.
+
+Hello,
+
+I whould like to share this simple patch that add the eventfd call to
+uClibc. Please review so it can be accepted to be merged.
+
+Jean-Christian
+
+Signed-off-by: Jean-Christian de Rivaz <jc@eclis.ch>
+Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
+(cherry picked from commit 9ed163dc0eaebe8734c35b356c406e9eb1c68d76)
+---
+ libc/sysdeps/linux/common/Makefile.in | 3 +-
+ libc/sysdeps/linux/common/eventfd.c | 18 +++++++++++
+ libc/sysdeps/linux/common/sys/eventfd.h | 48 +++++++++++++++++++++++++++++++
+ 3 files changed, 68 insertions(+), 1 deletions(-)
+ create mode 100644 libc/sysdeps/linux/common/eventfd.c
+ create mode 100644 libc/sysdeps/linux/common/sys/eventfd.h
+
+diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
+index 8f936ff..63f3f6f 100644
+--- a/libc/sysdeps/linux/common/Makefile.in
++++ b/libc/sysdeps/linux/common/Makefile.in
+@@ -24,7 +24,8 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += capget.c capset.c inotify.c ioperm.c iopl.c \
+ remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
+ sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
+ splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
+- sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c
++ sync_file_range.c sysctl.c sysinfo.c eventfd.c timerfd.c uselib.c \
++ vhangup.c
+ # NPTL needs these internally: madvise.c
+ CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
+ ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
+diff --git a/libc/sysdeps/linux/common/eventfd.c b/libc/sysdeps/linux/common/eventfd.c
+new file mode 100644
+index 0000000..cc3f3f0
+--- /dev/null
++++ b/libc/sysdeps/linux/common/eventfd.c
+@@ -0,0 +1,18 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * eventfd() for uClibc
++ *
++ * Copyright (C) 2011 Jean-Christian de Rivaz <jc@eclis.ch>
++ *
++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
++ */
++
++#include <sys/syscall.h>
++#include <sys/eventfd.h>
++
++/*
++ * eventfd()
++ */
++#ifdef __NR_eventfd
++_syscall2(int, eventfd, int, count, int, flags)
++#endif
+diff --git a/libc/sysdeps/linux/common/sys/eventfd.h b/libc/sysdeps/linux/common/sys/eventfd.h
+new file mode 100644
+index 0000000..311f803
+--- /dev/null
++++ b/libc/sysdeps/linux/common/sys/eventfd.h
+@@ -0,0 +1,48 @@
++/* Copyright (C) 2007, 2008, 2009 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, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#ifndef _SYS_EVENTFD_H
++#define _SYS_EVENTFD_H 1
++
++#include <stdint.h>
++
++
++/* Type for event counter. */
++typedef uint64_t eventfd_t;
++
++/* Flags for signalfd. */
++enum
++ {
++ EFD_SEMAPHORE = 1,
++#define EFD_SEMAPHORE EFD_SEMAPHORE
++ EFD_CLOEXEC = 02000000,
++#define EFD_CLOEXEC EFD_CLOEXEC
++ EFD_NONBLOCK = 04000
++#define EFD_NONBLOCK EFD_NONBLOCK
++ };
++
++
++__BEGIN_DECLS
++
++/* Return file descriptor for generic event channel. Set initial
++ value to COUNT. */
++extern int eventfd (int __count, int __flags) __THROW;
++
++__END_DECLS
++
++#endif /* sys/eventfd.h */
+--
+1.7.8
+