|  | @@ -12,6 +12,27 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  extern __typeof(select) __libc_select;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#if !defined(__NR__newselect) && !defined(__NR_select)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# define __NR___libc_pselect6 __NR_pselect6
 | 
	
		
			
				|  |  | +_syscall6(int, __libc_pselect6, int, n, fd_set *, readfds, fd_set *, writefds,
 | 
	
		
			
				|  |  | +	fd_set *, exceptfds, const struct timespec *, timeout,
 | 
	
		
			
				|  |  | +	const sigset_t *, sigmask);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
 | 
	
		
			
				|  |  | +                  struct timeval *timeout)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	struct timespec _ts, *ts = 0;
 | 
	
		
			
				|  |  | +	if (timeout) {
 | 
	
		
			
				|  |  | +		_ts.tv_sec = timeout->tv_sec;
 | 
	
		
			
				|  |  | +		_ts.tv_nsec = timeout->tv_usec * 1000;
 | 
	
		
			
				|  |  | +		ts = &_ts;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	return __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #ifdef __NR__newselect
 | 
	
		
			
				|  |  |  # define __NR___libc_select __NR__newselect
 | 
	
		
			
				|  |  |  #else
 | 
	
	
		
			
				|  | @@ -19,6 +40,9 @@ extern __typeof(select) __libc_select;
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  _syscall5(int, __libc_select, int, n, fd_set *, readfds, fd_set *, writefds,
 | 
	
		
			
				|  |  |  		  fd_set *, exceptfds, struct timeval *, timeout);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  libc_hidden_proto(select)
 | 
	
		
			
				|  |  |  weak_alias(__libc_select,select)
 | 
	
		
			
				|  |  |  libc_hidden_weak(select)
 |