mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_create, epoll_ctl, and epoll_wait. * sysdeps/unix/sysv/linux/Versions [libc: GLIBC_2.3.2]: Add epoll_create, epoll_ctl, and epoll_wait. * sysdeps/unix/sysv/linux/sys/epoll.h: New file. * sysdeps/unix/sysv/linux/Dist: Add sys/epoll.h. * sysdeps/unix/sysv/linux/Makefile [subdir=misc] (sysdep_headers): Add sys/epoll.h. 2002-12-16 Art Haas <ahaas@airmail.net> * sysdeps/generic/bp-semctl.h: Convert GCC extension initializer syntax to C99 * sysdeps/unix/sysv/aix/settimer.c: Same. * sysdeps/unix/sysv/aix/sleep.c: Same. * sysdeps/unix/sysv/aix/usleep.c: Same. 2002-12-16 Ulrich Drepper <drepper@redhat.com>
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (C) 2002 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_EPOLL_H
 | |
| #define	_SYS_EPOLL_H	1
 | |
| 
 | |
| #include <sys/types.h>
 | |
| 
 | |
| 
 | |
| enum EPOLL_EVENTS
 | |
|   {
 | |
|     EPOLLIN = 0x001,
 | |
| #define EPOLLIN EPOLLIN
 | |
|     EPOLLPRI = 0x002,
 | |
| #define EPOLLPRI EPOLLPRI
 | |
|     EPOLLOUT = 0x004,
 | |
| #define EPOLLOUT EPOLLOUT
 | |
|     EPOLLRDNORM = 0x040,
 | |
| #define EPOLLRDNORM EPOLLRDNORM
 | |
|     EPOLLRDBAND = 0x080,
 | |
| #define EPOLLRDBAND EPOLLRDBAND
 | |
|     EPOLLWRNORM = 0x100,
 | |
| #define EPOLLWRNORM EPOLLWRNORM
 | |
|     EPOLLWRBAND = 0x200,
 | |
| #define EPOLLWRBAND EPOLLWRBAND
 | |
|     EPOLLMSG = 0x400,
 | |
| #define EPOLLMSG EPOLLMSG
 | |
|     EPOLLERR = 0x008,
 | |
| #define EPOLLERR EPOLLERR
 | |
|     EPOLLHUP = 0x010
 | |
| #define EPOLLHUP EPOLLHUP
 | |
|   };
 | |
| 
 | |
| 
 | |
| /* Valid opcodes ( "op" parameter ) to issue to epoll_ctl().  */
 | |
| #define EPOLL_CTL_ADD 1	/* Add a file decriptor to the interface.  */
 | |
| #define EPOLL_CTL_DEL 2	/* Remove a file decriptor from the interface.  */
 | |
| #define EPOLL_CTL_MOD 3	/* Change file decriptor epoll_event structure.  */
 | |
| 
 | |
| 
 | |
| typedef union epoll_data
 | |
| {
 | |
|   void *ptr;
 | |
|   int fd;
 | |
|   uint32_t u32;
 | |
|   uint64_t u64;
 | |
| } epoll_data_t;
 | |
| 
 | |
| struct epoll_event
 | |
| {
 | |
|   uint32_t events;	/* Epoll events */
 | |
|   epoll_data_t data;	/* User data variable */
 | |
| };
 | |
| 
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| 
 | |
| /* Creates an epoll instance.  Returns an fd for the new instance.
 | |
|    The "size" parameter is a hint specifying the number of file
 | |
|    descriptors to be associated with the new instance.  The fd
 | |
|    returned by epoll_create() should be closed with close().  */
 | |
| extern int epoll_create (int __size) __THROW;
 | |
| 
 | |
| 
 | |
| /* Manipulate an epoll instance "epfd". Returns 0 in case of success,
 | |
|    -1 in case of error ( the "errno" variable will contain the
 | |
|    specific error code ) The "op" parameter is one of the EPOLL_CTL_*
 | |
|    constants defined above. The "fd" parameter is the target of the
 | |
|    operation. The "event" parameter describes which events the caller
 | |
|    is interested in and any associated user data.  */
 | |
| extern int epoll_ctl (int __epfd, int __op, int __fd,
 | |
| 		      struct epoll_event *__event) __THROW;
 | |
| 
 | |
| 
 | |
| /* Wait for events on an epoll instance "epfd". Returns the number of
 | |
|    triggered events returned in "events" buffer. Or -1 in case of
 | |
|    error with the "errno" variable set to the specific error code. The
 | |
|    "events" parameter is a buffer that will contain triggered
 | |
|    events. The "maxevents" is the maximum number of events to be
 | |
|    returned ( usually size of "events" ). The "timeout" parameter
 | |
|    specifies the maximum wait time in milliseconds (-1 == infinite).  */
 | |
| extern int epoll_wait (int __epfd, struct epoll_event *__events,
 | |
| 		       int __maxevents, int __timeout) __THROW;
 | |
| 
 | |
| __END_DECLS
 | |
| 
 | |
| #endif /* sys/epoll.h */
 |