3
epoll definitions for older libc.
5
Copyright (C) 2000-2006 Willy Tarreau - w@1wt.eu
7
This library is free software; you can redistribute it and/or
8
modify it under the terms of the GNU Lesser General Public
9
License as published by the Free Software Foundation, version 2.1
12
This library is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
Lesser General Public License for more details.
17
You should have received a copy of the GNU Lesser General Public
18
License along with this library; if not, write to the Free Software
19
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2
* include/common/epoll.h
3
* epoll definitions for older libc.
5
* Copyright (C) 2000-2012 Willy Tarreau - w@1wt.eu
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation, version 2.1
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this library; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
23
* Those constants were found both in glibc and in the Linux kernel.
66
#if defined(__powerpc__) || defined(__powerpc64__)
67
#define __NR_epoll_create 236
68
#define __NR_epoll_ctl 237
69
#define __NR_epoll_wait 238
70
#elif defined(__sparc__) || defined(__sparc64__)
71
#define __NR_epoll_create 193
72
#define __NR_epoll_ctl 194
73
#define __NR_epoll_wait 195
74
#elif defined(__x86_64__)
75
#define __NR_epoll_create 213
76
#define __NR_epoll_ctl 214
77
#define __NR_epoll_wait 215
78
#elif defined(__alpha__)
79
#define __NR_epoll_create 407
80
#define __NR_epoll_ctl 408
81
#define __NR_epoll_wait 409
82
#elif defined (__i386__)
83
#define __NR_epoll_create 254
84
#define __NR_epoll_ctl 255
85
#define __NR_epoll_wait 256
73
#if defined(CONFIG_HAP_LINUX_VSYSCALL) && defined(__linux__) && defined(__i386__)
74
/* Those are our self-defined functions */
75
extern int epoll_create(int size);
76
extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event);
77
extern int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);
80
/* We'll define a syscall, so for this we need __NR_splice. It should have
81
* been provided by syscall.h.
83
#if !defined(__NR_epoll_ctl)
87
84
#warning unsupported architecture, guessing __NR_epoll_create=254 like x86...
88
85
#define __NR_epoll_create 254
89
86
#define __NR_epoll_ctl 255
90
87
#define __NR_epoll_wait 256
93
/* Those are our self-defined functions */
94
static int epoll_create(int size);
95
static int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event);
96
static int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);
88
#endif /* __NR_epoll_ctl */
90
static inline _syscall1 (int, epoll_create, int, size);
91
static inline _syscall4 (int, epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event);
92
static inline _syscall4 (int, epoll_wait, int, epfd, struct epoll_event *, events, int, maxevents, int, timeout);
95
#endif /* USE_MY_EPOLL */
97
#endif /* __linux__ && ENABLE_EPOLL */
98
99
#endif /* _COMMON_EPOLL_H */
102
102
* Local variables:
103
103
* c-indent-level: 8