diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-09-10 01:25:50 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-09-10 01:25:50 +0000 |
commit | 1d7e996758f1e7b8160f3170e9176559fe7e24fe (patch) | |
tree | 55e3960c7c2f9755b6b5b7e349c9574703c31780 /include/asterisk | |
parent | 825087fc89422e52429f0e362ac5823857b51e19 (diff) |
Merged revisions 285930 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r285930 | tilghman | 2010-09-09 20:16:32 -0500 (Thu, 09 Sep 2010) | 14 lines
Merged revisions 285889 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r285889 | tilghman | 2010-09-09 19:13:45 -0500 (Thu, 09 Sep 2010) | 7 lines
Fix Mac OS X build.
This also fixes a rather grievous calculation error for the offset of
ast_fdset, which was masked on Linux and FreeBSD, because these platforms
check the first 256 FDs regardless of the bitmask setting (due to backwards
compatibility).
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@285931 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk')
-rw-r--r-- | include/asterisk/autoconfig.h.in | 59 | ||||
-rw-r--r-- | include/asterisk/select.h | 11 |
2 files changed, 43 insertions, 27 deletions
diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in index 67ce9ee65..b715a89de 100644 --- a/include/asterisk/autoconfig.h.in +++ b/include/asterisk/autoconfig.h.in @@ -807,7 +807,7 @@ /* Define to 1 if you have the `strtoq' function. */ #undef HAVE_STRTOQ -/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +/* Define to 1 if `st_blksize' is member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLKSIZE /* Define to 1 if you have the mISDN Supplemental Services library. */ @@ -1082,12 +1082,12 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME -/* Define to the home page for this package. */ -#undef PACKAGE_URL - /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Define to 1 if the C compiler supports function prototypes. */ +#undef PROTOTYPES + /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE @@ -1107,9 +1107,17 @@ /* Define to the type of arg 5 for `select'. */ #undef SELECT_TYPE_ARG5 +/* Define to 1 if the `setvbuf' function takes the buffering type as its + second argument and the buffer pointer as the third, as on System V before + release 3. */ +#undef SETVBUF_REVERSED + /* The size of `char *', as computed by sizeof. */ #undef SIZEOF_CHAR_P +/* The size of `fd_set.fds_bits', as computed by sizeof. */ +#undef SIZEOF_FD_SET_FDS_BITS + /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT @@ -1136,27 +1144,15 @@ /* Define to 1 if your <sys/time.h> declares `struct tm'. */ #undef TM_IN_SYS_TIME -/* Enable extensions on AIX 3, Interix. */ +/* Define to a type of the same size as fd_set.fds_bits[[0]] */ +#undef TYPEOF_FD_SET_FDS_BITS + +/* Define to 1 if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - /* Define to 1 if running on Darwin. */ #undef _DARWIN_UNLIMITED_SELECT @@ -1164,6 +1160,11 @@ /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif + /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #undef _LARGEFILE_SOURCE @@ -1180,6 +1181,20 @@ /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE +/* Enable extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif + +/* Define like PROTOTYPES; this can be used by system headers. */ +#undef __PROTOTYPES + /* Define to empty if `const' does not conform to ANSI C. */ #undef const diff --git a/include/asterisk/select.h b/include/asterisk/select.h index fea8c7aff..773b0a54e 100644 --- a/include/asterisk/select.h +++ b/include/asterisk/select.h @@ -23,6 +23,7 @@ #ifndef __AST_SELECT_H #define __AST_SELECT_H +#include "asterisk/autoconfig.h" #include <sys/select.h> #include <errno.h> #include "asterisk/utils.h" @@ -37,24 +38,24 @@ extern unsigned int ast_FD_SETSIZE; #define ast_fdset fd_set #else typedef struct { - long fds_bits[4096 / sizeof(long)]; /* 32768 bits */ + TYPEOF_FD_SET_FDS_BITS fds_bits[4096 / SIZEOF_FD_SET_FDS_BITS]; /* 32768 bits */ } ast_fdset; #undef FD_ZERO #define FD_ZERO(a) \ do { \ - long *bytes = (long *) a; \ + TYPEOF_FD_SET_FDS_BITS *bytes = (TYPEOF_FD_SET_FDS_BITS *) a; \ int i; \ - for (i = 0; i < sizeof(*(a)) / sizeof(long); i++) { \ + for (i = 0; i < sizeof(*(a)) / SIZEOF_FD_SET_FDS_BITS; i++) { \ bytes[i] = 0; \ } \ } while (0) #undef FD_SET #define FD_SET(fd, fds) \ do { \ - long *bytes = (long *) fds; \ + TYPEOF_FD_SET_FDS_BITS *bytes = (TYPEOF_FD_SET_FDS_BITS *) fds; \ if (fd / sizeof(*bytes) + ((fd + 1) % sizeof(*bytes) ? 1 : 0) < sizeof(*(fds))) { \ - bytes[fd / (sizeof(*bytes))] |= 1L << (fd % sizeof(*bytes)); \ + bytes[fd / (sizeof(*bytes) * 8)] |= ((TYPEOF_FD_SET_FDS_BITS) 1) << (fd % (sizeof(*bytes) * 8)); \ } else { \ ast_log(LOG_ERROR, "FD %d exceeds the maximum size of ast_fdset!\n", fd); \ } \ |