diff options
-rw-r--r-- | libc/sysdeps/linux/alpha/bits/epoll.h | 29 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/bits/epoll.h | 29 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/sys/epoll.h | 50 | ||||
-rw-r--r-- | libc/sysdeps/linux/mips/bits/epoll.h | 29 | ||||
-rw-r--r-- | libc/sysdeps/linux/sparc/bits/epoll.h | 29 | ||||
-rw-r--r-- | libc/sysdeps/linux/x86_64/bits/epoll.h | 31 |
6 files changed, 159 insertions, 38 deletions
diff --git a/libc/sysdeps/linux/alpha/bits/epoll.h b/libc/sysdeps/linux/alpha/bits/epoll.h new file mode 100644 index 000000000..7f9f37497 --- /dev/null +++ b/libc/sysdeps/linux/alpha/bits/epoll.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2002-2012 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/>. */ + +#ifndef _SYS_EPOLL_H +# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." +#endif + +/* Flags to be passed to epoll_create1. */ +enum + { + EPOLL_CLOEXEC = 010000000, +#define EPOLL_CLOEXEC EPOLL_CLOEXEC + EPOLL_NONBLOCK = 000000004 +#define EPOLL_NONBLOCK EPOLL_NONBLOCK + }; diff --git a/libc/sysdeps/linux/common/bits/epoll.h b/libc/sysdeps/linux/common/bits/epoll.h new file mode 100644 index 000000000..0a49b979f --- /dev/null +++ b/libc/sysdeps/linux/common/bits/epoll.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2002-2012 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/>. */ + +#ifndef _SYS_EPOLL_H +# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." +#endif + +/* Flags to be passed to epoll_create1. */ +enum + { + EPOLL_CLOEXEC = 02000000, +#define EPOLL_CLOEXEC EPOLL_CLOEXEC + EPOLL_NONBLOCK = 00004000 +#define EPOLL_NONBLOCK EPOLL_NONBLOCK + }; diff --git a/libc/sysdeps/linux/common/sys/epoll.h b/libc/sysdeps/linux/common/sys/epoll.h index a04bd704c..a55ebad62 100644 --- a/libc/sysdeps/linux/common/sys/epoll.h +++ b/libc/sysdeps/linux/common/sys/epoll.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2006, 2007, 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002-2012 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 @@ -12,9 +12,8 @@ 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. */ + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ #ifndef _SYS_EPOLL_H #define _SYS_EPOLL_H 1 @@ -30,33 +29,12 @@ typedef __sigset_t sigset_t; #endif +/* Get the platform-dependent flags. */ +#include <bits/epoll.h> -/* Flags to be passed to epoll_create1. */ - -enum - { -#if defined __alpha__ - EPOLL_CLOEXEC = 010000000, -# define EPOLL_CLOEXEC EPOLL_CLOEXEC - EPOLL_NONBLOCK = 04 -# define EPOLL_NONBLOCK EPOLL_NONBLOCK -#else -# if defined __sparc__ - EPOLL_CLOEXEC = 020000000, -# else - EPOLL_CLOEXEC = 02000000, -# endif -# define EPOLL_CLOEXEC EPOLL_CLOEXEC -# if defined __mips__ - EPOLL_NONBLOCK = 0200 -# elif defined __sparc__ - EPOLL_NONBLOCK = 040000 -# else - EPOLL_NONBLOCK = 04000 -# endif -#define EPOLL_NONBLOCK EPOLL_NONBLOCK +#ifndef __EPOLL_PACKED +# define __EPOLL_PACKED #endif - }; enum EPOLL_EVENTS @@ -83,9 +61,9 @@ enum EPOLL_EVENTS #define EPOLLHUP EPOLLHUP EPOLLRDHUP = 0x2000, #define EPOLLRDHUP EPOLLRDHUP - EPOLLONESHOT = (1 << 30), + EPOLLONESHOT = 1u << 30, #define EPOLLONESHOT EPOLLONESHOT - EPOLLET = (1 << 31) + EPOLLET = 1u << 31 #define EPOLLET EPOLLET }; @@ -108,11 +86,7 @@ struct epoll_event { uint32_t events; /* Epoll events */ epoll_data_t data; /* User data variable */ -} -#if defined __x86_64__ -__attribute__((packed)) -#endif -; +} __EPOLL_PACKED; __BEGIN_DECLS @@ -123,7 +97,7 @@ __BEGIN_DECLS returned by epoll_create() should be closed with close(). */ extern int epoll_create (int __size) __THROW; -/* Same as epoll_create but with a FLAGS parameter. The unused SIZE +/* Same as epoll_create but with an FLAGS parameter. The unused SIZE parameter has been dropped. */ extern int epoll_create1 (int __flags) __THROW; @@ -159,7 +133,7 @@ extern int epoll_wait (int __epfd, struct epoll_event *__events, __THROW. */ extern int epoll_pwait (int __epfd, struct epoll_event *__events, int __maxevents, int __timeout, - __const __sigset_t *__ss); + const __sigset_t *__ss); __END_DECLS diff --git a/libc/sysdeps/linux/mips/bits/epoll.h b/libc/sysdeps/linux/mips/bits/epoll.h new file mode 100644 index 000000000..4c6eb3bb7 --- /dev/null +++ b/libc/sysdeps/linux/mips/bits/epoll.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2002-2012 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/>. */ + +#ifndef _SYS_EPOLL_H +# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." +#endif + +/* Flags to be passed to epoll_create1. */ +enum + { + EPOLL_CLOEXEC = 02000000, +#define EPOLL_CLOEXEC EPOLL_CLOEXEC + EPOLL_NONBLOCK = 00000200 +#define EPOLL_NONBLOCK EPOLL_NONBLOCK + }; diff --git a/libc/sysdeps/linux/sparc/bits/epoll.h b/libc/sysdeps/linux/sparc/bits/epoll.h new file mode 100644 index 000000000..532402016 --- /dev/null +++ b/libc/sysdeps/linux/sparc/bits/epoll.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2002-2012 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/>. */ + +#ifndef _SYS_EPOLL_H +# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." +#endif + +/* Flags to be passed to epoll_create1. */ +enum + { + EPOLL_CLOEXEC = 0x400000, +#define EPOLL_CLOEXEC EPOLL_CLOEXEC + EPOLL_NONBLOCK = 0x004000 +#define EPOLL_NONBLOCK EPOLL_NONBLOCK + }; diff --git a/libc/sysdeps/linux/x86_64/bits/epoll.h b/libc/sysdeps/linux/x86_64/bits/epoll.h new file mode 100644 index 000000000..be1f5a636 --- /dev/null +++ b/libc/sysdeps/linux/x86_64/bits/epoll.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2002-2012 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/>. */ + +#ifndef _SYS_EPOLL_H +# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." +#endif + +/* Flags to be passed to epoll_create1. */ +enum + { + EPOLL_CLOEXEC = 02000000, +#define EPOLL_CLOEXEC EPOLL_CLOEXEC + EPOLL_NONBLOCK = 00004000 +#define EPOLL_NONBLOCK EPOLL_NONBLOCK + }; + +#define __EPOLL_PACKED __attribute__ ((__packed__)) |