zend_long bc_precision;
ZEND_END_MODULE_GLOBALS(bcmath)
-#ifdef ZTS
-# define BCG(v) ZEND_TSRMG(bcmath_globals_id, zend_bcmath_globals *, v)
-# ifdef COMPILE_DL_BCMATH
+#if defined(ZTS) && defined(COMPILE_DL_BCMATH)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-# define BCG(v) (bcmath_globals.v)
#endif
ZEND_EXTERN_MODULE_GLOBALS(bcmath)
+#define BCG(v) ZEND_MODULE_GLOBALS_ACCESSOR(bcmath, v)
#endif /* PHP_BCMATH_H */
zend_bool rshutdown_started;
ZEND_END_MODULE_GLOBALS(com_dotnet)
-#ifdef ZTS
-# define COMG(v) ZEND_TSRMG(com_dotnet_globals_id, zend_com_dotnet_globals *, v)
-# ifdef COMPILE_DL_COM_DOTNET
+#if defined(ZTS) && defined(COMPILE_DL_COM_DOTNET)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-# define COMG(v) (com_dotnet_globals.v)
#endif
extern ZEND_DECLARE_MODULE_GLOBALS(com_dotnet);
+#define COMG(v) ZEND_MODULE_GLOBALS_ACCESSOR(com_dotnet, v)
#endif /* PHP_COM_DOTNET_H */
ZEND_END_MODULE_GLOBALS(exif)
ZEND_DECLARE_MODULE_GLOBALS(exif)
+#define EXIF_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(exif, v)
-#ifdef ZTS
-#define EXIF_G(v) ZEND_TSRMG(exif_globals_id, zend_exif_globals *, v)
-#ifdef COMPILE_DL_EXIF
+#if defined(ZTS) && defined(COMPILE_DL_EXIF)
ZEND_TSRMLS_CACHE_DEFINE();
#endif
-#else
-#define EXIF_G(v) (exif_globals.v)
-#endif
/* {{{ PHP_INI
*/
zend_long default_filter_flags;
ZEND_END_MODULE_GLOBALS(filter)
-#ifdef ZTS
-#define IF_G(v) ZEND_TSRMG(filter_globals_id, zend_filter_globals *, v)
+#if defined(COMPILE_DL_FILTER) && defined(ZTS)
ZEND_TSRMLS_CACHE_EXTERN();
-#else
-#define IF_G(v) (filter_globals.v)
#endif
+#define IF_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(filter, v)
#define PHP_INPUT_FILTER_PARAM_DECL zval *value, zend_long flags, zval *option_array, char *charset
void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL);
gmp_randstate_t rand_state;
ZEND_END_MODULE_GLOBALS(gmp)
-#ifdef ZTS
-#define GMPG(v) ZEND_TSRMG(gmp_globals_id, zend_gmp_globals *, v)
-#ifdef COMPILE_DL_GMP
+#define GMPG(v) ZEND_MODULE_GLOBALS_ACCESSOR(gmp, v)
+
+#if defined(ZTS) && defined(COMPILE_DL_GMP)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define GMPG(v) (gmp_globals.v)
-#endif
#else
char *output_encoding;
ZEND_END_MODULE_GLOBALS(iconv)
-#ifdef ZTS
-# define ICONVG(v) ZEND_TSRMG(iconv_globals_id, zend_iconv_globals *, v)
-# ifdef COMPILE_DL_ICONV
+#define ICONVG(v) ZEND_MODULE_GLOBALS_ACCESSOR(iconv, v)
+
+#ifdef defined(ZTS) && defined(COMPILE_DL_ICONV)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-# define ICONVG(v) (iconv_globals.v)
#endif
#ifdef HAVE_IBM_ICONV
PHP_IBASE_NOWAIT = 256
};
-#ifdef ZTS
-#else
-#endif
+#define IBG(v) ZEND_MODULE_GLOBALS_ACCESSOR(ibase, v)
-#ifdef ZTS
-# define IBG(v) ZEND_TSRMG(ibase_globals_id, zend_ibase_globals *, v)
-# ifdef COMPILE_DL_INTERBASE
+#if defined(ZTS) && defined(COMPILE_DL_INTERBASE)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-#define IBG(v) (ibase_globals.v)
#endif
#define BLOB_ID_LEN 18
zend_bool use_exceptions;
ZEND_END_MODULE_GLOBALS(intl)
-/* Macro to access request-wide global variables. */
-#ifdef ZTS
-#define INTL_G(v) ZEND_TSRMG(intl_globals_id, zend_intl_globals *, v)
-#ifdef COMPILE_DL_INTL
+#if defined(ZTS) && defined(COMPILE_DL_INTL)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define INTL_G(v) (intl_globals.v)
-#endif
ZEND_EXTERN_MODULE_GLOBALS(intl)
+/* Macro to access request-wide global variables. */
+#define INTL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(intl, v)
PHP_MINIT_FUNCTION(intl);
PHP_MSHUTDOWN_FUNCTION(intl);
ZEND_END_MODULE_GLOBALS(json)
ZEND_EXTERN_MODULE_GLOBALS(json);
+#define JSON_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(json, v)
-#ifdef ZTS
-# define JSON_G(v) ZEND_TSRMG(json_globals_id, zend_json_globals *, v)
-# ifdef COMPILE_DL_JSON
-ZEND_TSRMLS_CACHE_EXTERN;
-# endif
-#else
-# define JSON_G(v) (json_globals.v)
+#if defined(ZTS) && defined(COMPILE_DL_JSON)
+ZEND_TSRMLS_CACHE_EXTERN();
#endif
/* json_decode() options */
PHP_LIBXML_API void php_libxml_initialize(void);
PHP_LIBXML_API void php_libxml_shutdown(void);
-#ifdef ZTS
-#define LIBXML(v) ZEND_TSRMG(libxml_globals_id, zend_libxml_globals *, v)
-#ifdef COMPILE_DL_LIBXML
+#define LIBXML(v) ZEND_MODULE_GLOBALS_ACCESSOR(libxml, v)
+
+#if defined(ZTS) && defined(COMPILE_DL_LIBXML)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define LIBXML(v) (libxml_globals.v)
-#endif
#else /* HAVE_LIBXML */
#define libxml_module_ptr NULL
char *save_func;
};
-#ifdef ZTS
-#define MBSTRG(v) ZEND_TSRMG(mbstring_globals_id, zend_mbstring_globals *, v)
+#define MBSTRG(v) ZEND_MODULE_GLOBALS_ACCESSOR(mbstring, v)
+
+#if defined(ZTS) && defined(COMPILE_DL_MBSTRING)
ZEND_TSRMLS_CACHE_EXTERN();
-#else
-#define MBSTRG(v) (mbstring_globals.v)
#endif
#else /* HAVE_MBSTRING */
zend_bool rollback_on_cached_plink;
ZEND_END_MODULE_GLOBALS(mysqli)
+#define MyG(v) ZEND_MODULE_GLOBALS_ACCESSOR(mysqli, v)
-#ifdef ZTS
-#define MyG(v) ZEND_TSRMG(mysqli_globals_id, zend_mysqli_globals *, v)
-#ifdef COMPILE_DL_MYSQLI
+#if defined(ZTS) && defined(COMPILE_DL_MYSQLI)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define MyG(v) (mysqli_globals.v)
-#endif
#define my_estrdup(x) (x) ? estrdup(x) : NULL
#define my_efree(x) if (x) efree(x)
ZEND_END_MODULE_GLOBALS(mysqlnd)
PHPAPI ZEND_EXTERN_MODULE_GLOBALS(mysqlnd)
+#define MYSQLND_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(mysqlnd, v)
-#ifdef ZTS
-#define MYSQLND_G(v) ZEND_TSRMG(mysqlnd_globals_id, zend_mysqlnd_globals *, v)
-#ifdef COMPILE_DL_MYSQLND
+#if defined(ZTS) && defined(COMPILE_DL_MYSQLND)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define MYSQLND_G(v) (mysqlnd_globals.v)
-#endif
PHPAPI void mysqlnd_minfo_print_hash(zval *values);
#endif
#define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY)
-#ifdef ZTS
-# define ODBCG(v) ZEND_TSRMG(odbc_globals_id, zend_odbc_globals *, v)
-# ifdef COMPILE_DL_ODBC
+PHPAPI ZEND_EXTERN_MODULE_GLOBALS(odbc)
+#define ODBCG(v) ZEND_MODULE_GLOBALS_ACCESSOR(odbc, v)
+
+#if defined(ZTS) && defined(COMPILE_DL_ODBC)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-# define ODBCG(v) (odbc_globals.v)
-extern ZEND_API zend_odbc_globals odbc_globals;
#endif
#endif /* HAVE_UODBC */
ZEND_END_MODULE_GLOBALS(pdo_mysql)
ZEND_EXTERN_MODULE_GLOBALS(pdo_mysql)
+#define PDO_MYSQL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(pdo_mysql, v)
-#ifdef ZTS
-#define PDO_MYSQL_G(v) ZEND_TSRMG(pdo_mysql_globals_id, zend_pdo_mysql_globals *, v)
-# ifdef COMPILE_DL_PDO_MYSQL
+#if defined(ZTS) && defined(COMPILE_DL_PDO_MYSQL)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-#define PDO_MYSQL_G(v) (pdo_mysql_globals.v)
#endif
ZEND_END_MODULE_GLOBALS(pgsql)
ZEND_EXTERN_MODULE_GLOBALS(pgsql)
+# define PGG(v) ZEND_MODULE_GLOBALS_ACCESSOR(pgsql, v)
-#ifdef ZTS
-# define PGG(v) ZEND_TSRMG(pgsql_globals_id, zend_pgsql_globals *, v)
-# ifdef COMPILE_DL_PGSQL
+#if defined(ZTS) && defined(COMPILE_DL_PGSQL)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-# define PGG(v) (pgsql_globals.v)
#endif
#endif
ZEND_END_MODULE_GLOBALS(phar)
ZEND_EXTERN_MODULE_GLOBALS(phar)
+#define PHAR_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(phar, v)
-#ifdef ZTS
-# include "TSRM.h"
-# ifdef COMPILE_DL_PHAR
+#if defined(ZTS) && defined(COMPILE_DL_PHAR)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-# define PHAR_G(v) ZEND_TSRMG(phar_globals_id, zend_phar_globals *, v)
-#else
-# define PHAR_G(v) (phar_globals.v)
#endif
#ifndef php_uint16
You are encouraged to rename these macros something shorter, see
examples in any other php module directory.
*/
+#define EXTNAME_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(extname, v)
-#ifdef ZTS
-#define EXTNAME_G(v) ZEND_TSRMG(extname_globals_id, zend_extname_globals *, v)
-#ifdef COMPILE_DL_EXTNAME
+#if defined(ZTS) && defined(COMPILE_DL_EXTNAME)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define EXTNAME_G(v) (extname_globals.v)
-#endif
#endif /* PHP_EXTNAME_H */
#define phpext_soap_ptr soap_module_ptr
ZEND_EXTERN_MODULE_GLOBALS(soap)
+#define SOAP_GLOBAL(v) ZEND_MODULE_GLOBALS_ACCESSOR(soap, v)
-#ifdef ZTS
-# define SOAP_GLOBAL(v) ZEND_TSRMG(soap_globals_id, zend_soap_globals *, v)
-# ifdef COMPILE_DL_SOAP
+#if defined(ZTS) && defined(COMPILE_DL_SOAP)
ZEND_TSRMLS_CACHE_EXTERN();
-# endif
-#else
-# define SOAP_GLOBAL(v) (soap_globals.v)
#endif
extern zend_class_entry* soap_var_class_entry;
char *strerror_buf;
ZEND_END_MODULE_GLOBALS(sockets)
-#ifdef ZTS
-#define SOCKETS_G(v) ZEND_TSRMG(sockets_globals_id, zend_sockets_globals *, v)
-#else
-#define SOCKETS_G(v) (sockets_globals.v)
-#endif
-
ZEND_EXTERN_MODULE_GLOBALS(sockets);
+#define SOCKETS_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(sockets, v)
enum sockopt_return {
SOCKOPT_ERROR,
static zend_class_entry *assertion_error_ce;
-#ifdef ZTS
-#define ASSERTG(v) ZEND_TSRMG(assert_globals_id, zend_assert_globals *, v)
-#else
-#define ASSERTG(v) (assert_globals.v)
-#endif
+#define ASSERTG(v) ZEND_MODULE_GLOBALS_ACCESSOR(assert, v)
#define SAFE_STRING(s) ((s)?(s):"")
int (*compare_func)(zval *result, zval *op1, zval *op2);
ZEND_END_MODULE_GLOBALS(array)
-#ifdef ZTS
-#define ARRAYG(v) ZEND_TSRMG(array_globals_id, zend_array_globals *, v)
-#else
-#define ARRAYG(v) (array_globals.v)
-#endif
+#define ARRAYG(v) ZEND_MODULE_GLOBALS_ACCESSOR(array, v)
#endif /* PHP_ARRAY_H */
zend_bool clean_output;
ZEND_END_MODULE_GLOBALS(tidy)
-#ifdef ZTS
-#define TG(v) ZEND_TSRMG(tidy_globals_id, zend_tidy_globals *, v)
-#ifdef COMPILE_DL_TIDY
+#define TG(v) ZEND_MODULE_GLOBALS_ACCESSOR(tidy, v)
+
+#if defined(ZTS) && defined(COMPILE_DL_TIDY)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define TG(v) (tidy_globals.v)
-#endif
#endif
#define phpext_xml_ptr xml_module_ptr
-#ifdef ZTS
-#define XML(v) ZEND_TSRMG(xml_globals_id, zend_xml_globals *, v)
-#ifdef COMPILE_DL_XML
+#define XML(v) ZEND_MODULE_GLOBALS_ACCESSOR(xml, v)
+
+#if defined(ZTS) && defined(COMPILE_DL_XML)
ZEND_TSRMLS_CACHE_EXTERN();
#endif
-#else
-#define XML(v) (xml_globals.v)
-#endif
#endif /* PHP_XML_H */
int compression_coding;
ZEND_END_MODULE_GLOBALS(zlib);
+#define ZLIBG(v) ZEND_MODULE_GLOBALS_ACCESSOR(zlib, v)
+
php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC);
extern php_stream_ops php_stream_gzio_ops;
extern php_stream_wrapper php_stream_gzip_wrapper;
#define zlib_module_ptr &php_zlib_module_entry
#define phpext_zlib_ptr zlib_module_ptr
-#ifdef ZTS
-# include "TSRM.h"
-# define ZLIBG(v) ZEND_TSRMG(zlib_globals_id, zend_zlib_globals *, v)
-#else
-# define ZLIBG(v) (zlib_globals.v)
-#endif
-
#endif /* PHP_ZLIB_H */
/*