diff options
Diffstat (limited to 'php/src/php5/Config.h')
-rw-r--r-- | php/src/php5/Config.h | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/php/src/php5/Config.h b/php/src/php5/Config.h new file mode 100644 index 00000000000..0c18832f642 --- /dev/null +++ b/php/src/php5/Config.h @@ -0,0 +1,129 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_PHP_CONFIG_H +#define ICE_PHP_CONFIG_H + +// +// We need to define WIN32_LEAN_AND_MEAN to avoid redefinition errors in +// winsock2.h. However, we can't define the macro in the Makefile because +// a PHP header defines it without a surrounding #ifndef, so we have to +// undefine it before including the PHP header files. +// +#ifdef _WIN32 +# define WIN32_LEAN_AND_MEAN +#endif + +#include <Ice/Ice.h> + +#ifdef _WIN32 +# undef WIN32_LEAN_AND_MEAN +#endif + +#ifdef _WIN32 +#include <crtdbg.h> +#include <math.h> +#endif + +#ifdef _WIN32 +extern "C" +{ +#endif + +#ifdef _WIN32 +# pragma warning( disable : 4018) // suppress signed/unsigned mismatch in zend_execute.h (PHP 5.3.x) +#elif defined(__GNUC__) +# pragma GCC diagnostic warning "-Wsign-compare" +#endif + +#ifdef _WIN64 +# pragma warning( disable : 4267) // suppress size_t/uint conversion warnings in zend macros for Windows x64 builds +#endif + +#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +# pragma GCC diagnostic warning "-Wnarrowing" +#endif + +#include "php.h" + +#ifdef _WIN32 +# pragma warning( default : 4018) +#endif + +#include "php_ini.h" +#include "ext/standard/info.h" +#include "zend_interfaces.h" +#include "zend_exceptions.h" + +#ifdef _WIN32 +} +#endif + +extern zend_module_entry ice_module_entry; +#define phpext_ice_ptr &ice_module_entry + +#ifdef PHP_WIN32 +#define PHP_ICE_API __declspec(dllexport) +#else +#define PHP_ICE_API +#endif + +#ifdef ZTS +#include "TSRM.h" +#endif + +// +// The PHP header files define a macro named "inline". +// +#ifdef inline +# undef inline +#endif + +ZEND_MINIT_FUNCTION(ice); +ZEND_MSHUTDOWN_FUNCTION(ice); +ZEND_RINIT_FUNCTION(ice); +ZEND_RSHUTDOWN_FUNCTION(ice); +ZEND_MINFO_FUNCTION(ice); + +ZEND_BEGIN_MODULE_GLOBALS(ice) + void* communicatorMap; + void* idToClassInfoMap; + void* compactIdToClassInfoMap; + void* nameToClassInfoMap; + void* proxyInfoMap; + void* exceptionInfoMap; + zval* unset; +ZEND_END_MODULE_GLOBALS(ice) + +#ifdef ZTS +# define ICE_G(v) TSRMG(ice_globals_id, zend_ice_globals*, v) +#else +# define ICE_G(v) (ice_globals.v) +#endif + +#ifndef Z_ADDREF_P +# ifndef ZVAL_ADDREF +# error "Unknown PHP version" +# endif +# define Z_ADDREF_P(zv) ZVAL_ADDREF(zv) +#endif + +#ifndef ZEND_MN +# define ZEND_MN(name) ZEND_FN(name) +#endif + +// +// Older versions of PHP use char* instead of const char* in many APIs. +// +#ifdef STRCAST +# error "STRCAST already defined!" +#endif +#define STRCAST(s) const_cast<char*>(s) + +#endif |