diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /main/php_reentrancy.h | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'main/php_reentrancy.h')
-rw-r--r-- | main/php_reentrancy.h | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/main/php_reentrancy.h b/main/php_reentrancy.h new file mode 100644 index 0000000..50f2e20 --- /dev/null +++ b/main/php_reentrancy.h @@ -0,0 +1,133 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Author: Sascha Schumann <sascha@schumann.cx> | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#ifndef PHP_REENTRANCY_H +#define PHP_REENTRANCY_H + +#include "php.h" + +#include <sys/types.h> +#ifdef HAVE_DIRENT_H +#include <dirent.h> +#endif +#include <time.h> + +/* currently, PHP does not check for these functions, but assumes + that they are available on all systems. */ + +#define HAVE_LOCALTIME 1 +#define HAVE_GMTIME 1 +#define HAVE_ASCTIME 1 +#define HAVE_CTIME 1 + +#if defined(PHP_IRIX_TIME_R) +#undef HAVE_ASCTIME_R +#undef HAVE_CTIME_R +#endif + +#if defined(PHP_HPUX_TIME_R) +#undef HAVE_LOCALTIME_R +#undef HAVE_ASCTIME_R +#undef HAVE_CTIME_R +#undef HAVE_GMTIME_R +#endif + +BEGIN_EXTERN_C() + +#if defined(HAVE_POSIX_READDIR_R) +#define php_readdir_r readdir_r +#else +PHPAPI int php_readdir_r(DIR *dirp, struct dirent *entry, + struct dirent **result); +#endif + +#if !defined(HAVE_LOCALTIME_R) && defined(HAVE_LOCALTIME) +#define PHP_NEED_REENTRANCY 1 +PHPAPI struct tm *php_localtime_r(const time_t *const timep, struct tm *p_tm); +#else +#define php_localtime_r localtime_r +#ifdef MISSING_LOCALTIME_R_DECL +struct tm *localtime_r(const time_t *const timep, struct tm *p_tm); +#endif +#endif + + +#if !defined(HAVE_CTIME_R) && defined(HAVE_CTIME) +#define PHP_NEED_REENTRANCY 1 +PHPAPI char *php_ctime_r(const time_t *clock, char *buf); +#else +#define php_ctime_r ctime_r +#ifdef MISSING_CTIME_R_DECL +char *ctime_r(const time_t *clock, char *buf); +#endif +#endif + + +#if !defined(HAVE_ASCTIME_R) && defined(HAVE_ASCTIME) +#define PHP_NEED_REENTRANCY 1 +PHPAPI char *php_asctime_r(const struct tm *tm, char *buf); +#else +#define php_asctime_r asctime_r +#ifdef MISSING_ASCTIME_R_DECL +char *asctime_r(const struct tm *tm, char *buf); +#endif +#endif + + +#if !defined(HAVE_GMTIME_R) && defined(HAVE_GMTIME) || defined(__BEOS__) +#define PHP_NEED_REENTRANCY 1 +PHPAPI struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm); +#else +#define php_gmtime_r gmtime_r +#ifdef MISSING_GMTIME_R_DECL +struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm); +#endif +#endif + +#if !defined(HAVE_STRTOK_R) +PHPAPI char *php_strtok_r(char *s, const char *delim, char **last); +#else +#define php_strtok_r strtok_r +#ifdef MISSING_STRTOK_R_DECL +char *strtok_r(char *s, const char *delim, char **last); +#endif +#endif + +#if !defined(HAVE_RAND_R) +PHPAPI int php_rand_r(unsigned int *seed); +#else +#define php_rand_r rand_r +#endif + +END_EXTERN_C() + +#if !defined(ZTS) +#undef PHP_NEED_REENTRANCY +#endif + +#if defined(PHP_NEED_REENTRANCY) +void reentrancy_startup(void); +void reentrancy_shutdown(void); +#else +#define reentrancy_startup() +#define reentrancy_shutdown() +#endif + +#endif |