1 /* 2 +----------------------------------------------------------------------+ 3 | Zend Engine | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 2.00 of the Zend license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.zend.com/license/2_00.txt. | 11 | If you did not receive a copy of the Zend license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@zend.com so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Andi Gutmans <andi@zend.com> | 16 | Zeev Suraski <zeev@zend.com> | 17 +----------------------------------------------------------------------+ 18 */ 19 20 /* $Id$ */ 21 22 #if defined(__GNUC__) && __GNUC__ >= 4 23 # define ZEND_API __attribute__ ((visibility("default"))) 24 # define ZEND_DLEXPORT __attribute__ ((visibility("default"))) 25 #else 26 # define ZEND_API 27 # define ZEND_DLEXPORT 28 #endif 29 30 #define ZEND_DLIMPORT 31 32 @TOP@ 33 34 #undef uint 35 #undef ulong 36 37 /* Define if you want to enable memory limit support */ 38 #define MEMORY_LIMIT 0 39 40 @BOTTOM@ 41 42 #ifndef ZEND_ACCONFIG_H_NO_C_PROTOS 43 44 #ifdef HAVE_STDLIB_H 45 # include <stdlib.h> 46 #endif 47 48 #ifdef HAVE_SYS_TYPES_H 49 # include <sys/types.h> 50 #endif 51 52 #ifdef HAVE_SYS_SELECT_H 53 #include <sys/select.h> 54 #endif 55 56 #ifdef HAVE_IEEEFP_H 57 # include <ieeefp.h> 58 #endif 59 60 #ifdef HAVE_STRING_H 61 # include <string.h> 62 #else 63 # include <strings.h> 64 #endif 65 66 #if ZEND_BROKEN_SPRINTF 67 int zend_sprintf(char *buffer, const char *format, ...); 68 #else 69 # define zend_sprintf sprintf 70 #endif 71 72 #include <math.h> 73 74 /* To enable the is_nan, is_infinite and is_finite PHP functions */ 75 #ifdef NETWARE 76 #define HAVE_ISNAN 1 77 #define HAVE_ISINF 1 78 #define HAVE_ISFINITE 1 79 #endif 80 81 #ifndef zend_isnan 82 #ifdef HAVE_ISNAN 83 #define zend_isnan(a) isnan(a) 84 #elif defined(HAVE_FPCLASS) 85 #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN)) 86 #else 87 #define zend_isnan(a) 0 88 #endif 89 #endif 90 91 #ifdef HAVE_ISINF 92 #define zend_isinf(a) isinf(a) 93 #elif defined(INFINITY) 94 /* Might not work, but is required by ISO C99 */ 95 #define zend_isinf(a) (((a)==INFINITY)?1:0) 96 #elif defined(HAVE_FPCLASS) 97 #define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF)) 98 #else 99 #define zend_isinf(a) 0 100 #endif 101 102 #ifdef HAVE_FINITE 103 #define zend_finite(a) finite(a) 104 #elif defined(HAVE_ISFINITE) || defined(isfinite) 105 #define zend_finite(a) isfinite(a) 106 #elif defined(fpclassify) 107 #define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0) 108 #else 109 #define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1) 110 #endif 111 112 #endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */ 113 114 #ifdef NETWARE 115 #ifdef USE_WINSOCK 116 #/*This detection against winsock is of no use*/ undef HAVE_SOCKLEN_T 117 #/*This detection against winsock is of no use*/ undef HAVE_SYS_SOCKET_H 118 #endif 119 #endif 120 121 /* 122 * Local variables: 123 * tab-width: 4 124 * c-basic-offset: 4 125 * indent-tabs-mode: t 126 * End: 127 */ 128