1 /* posixselect.h -- wrapper for select(2) includes and definitions */ 2 3 /* Copyright (C) 2009 Free Software Foundation, Inc. 4 5 This file is part of GNU Bash, the Bourne Again SHell. 6 7 Bash is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 Bash 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 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with Bash. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef _POSIXSELECT_H_ 22 #define _POSIXSELECT_H_ 23 24 #if defined (FD_SET) && !defined (HAVE_SELECT) 25 # define HAVE_SELECT 1 26 #endif 27 28 #if defined (HAVE_SELECT) 29 # if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX) 30 # include <sys/time.h> 31 # endif 32 #endif /* HAVE_SELECT */ 33 #if defined (HAVE_SYS_SELECT_H) 34 # include <sys/select.h> 35 #endif 36 37 #ifndef USEC_PER_SEC 38 # define USEC_PER_SEC 1000000 39 #endif 40 41 #define USEC_TO_TIMEVAL(us, tv) \ 42 do { \ 43 (tv).tv_sec = (us) / USEC_PER_SEC; \ 44 (tv).tv_usec = (us) % USEC_PER_SEC; \ 45 } while (0) 46 47 #endif /* _POSIXSELECT_H_ */ 48