File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / main / php_reentrancy.h
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 01:32:11 2013 UTC (10 years, 11 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_29p0, v5_4_20p0, v5_4_20, v5_4_17, HEAD
5.4.17

    1: /*
    2:    +----------------------------------------------------------------------+
    3:    | PHP Version 5                                                        |
    4:    +----------------------------------------------------------------------+
    5:    | Copyright (c) 1997-2013 The PHP Group                                |
    6:    +----------------------------------------------------------------------+
    7:    | This source file is subject to version 3.01 of the PHP 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.php.net/license/3_01.txt                                  |
   11:    | If you did not receive a copy of the PHP license and are unable to   |
   12:    | obtain it through the world-wide-web, please send a note to          |
   13:    | license@php.net so we can mail you a copy immediately.               |
   14:    +----------------------------------------------------------------------+
   15:    | Author: Sascha Schumann <sascha@schumann.cx>                         |
   16:    +----------------------------------------------------------------------+
   17:  */
   18: 
   19: /* $Id: php_reentrancy.h,v 1.1.1.3 2013/07/22 01:32:11 misho Exp $ */
   20: 
   21: #ifndef PHP_REENTRANCY_H
   22: #define PHP_REENTRANCY_H
   23: 
   24: #include "php.h"
   25: 
   26: #include <sys/types.h>
   27: #ifdef HAVE_DIRENT_H
   28: #include <dirent.h>
   29: #endif
   30: #include <time.h>
   31: 
   32: /* currently, PHP does not check for these functions, but assumes
   33:    that they are available on all systems. */
   34: 
   35: #define HAVE_LOCALTIME 1
   36: #define HAVE_GMTIME 1
   37: #define HAVE_ASCTIME 1
   38: #define HAVE_CTIME 1
   39: 
   40: #if defined(PHP_IRIX_TIME_R)
   41: #undef HAVE_ASCTIME_R
   42: #undef HAVE_CTIME_R
   43: #endif
   44: 
   45: #if defined(PHP_HPUX_TIME_R)
   46: #undef HAVE_LOCALTIME_R
   47: #undef HAVE_ASCTIME_R
   48: #undef HAVE_CTIME_R
   49: #undef HAVE_GMTIME_R
   50: #endif
   51: 
   52: BEGIN_EXTERN_C()
   53: 
   54: #if defined(HAVE_POSIX_READDIR_R)
   55: #define php_readdir_r readdir_r
   56: #else
   57: PHPAPI int php_readdir_r(DIR *dirp, struct dirent *entry,
   58: 		struct dirent **result);
   59: #endif
   60: 
   61: #if !defined(HAVE_LOCALTIME_R) && defined(HAVE_LOCALTIME)
   62: #define PHP_NEED_REENTRANCY 1
   63: PHPAPI struct tm *php_localtime_r(const time_t *const timep, struct tm *p_tm);
   64: #else
   65: #define php_localtime_r localtime_r
   66: #ifdef MISSING_LOCALTIME_R_DECL
   67: struct tm *localtime_r(const time_t *const timep, struct tm *p_tm);
   68: #endif
   69: #endif
   70: 
   71: 
   72: #if !defined(HAVE_CTIME_R) && defined(HAVE_CTIME)
   73: #define PHP_NEED_REENTRANCY 1
   74: PHPAPI char *php_ctime_r(const time_t *clock, char *buf);
   75: #else
   76: #define php_ctime_r ctime_r
   77: #ifdef MISSING_CTIME_R_DECL
   78: char *ctime_r(const time_t *clock, char *buf);
   79: #endif
   80: #endif
   81: 
   82: 
   83: #if !defined(HAVE_ASCTIME_R) && defined(HAVE_ASCTIME)
   84: #define PHP_NEED_REENTRANCY 1
   85: PHPAPI char *php_asctime_r(const struct tm *tm, char *buf);
   86: #else
   87: #define php_asctime_r asctime_r
   88: #ifdef MISSING_ASCTIME_R_DECL
   89: char *asctime_r(const struct tm *tm, char *buf);
   90: #endif
   91: #endif
   92: 
   93: 
   94: #if !defined(HAVE_GMTIME_R) && defined(HAVE_GMTIME) || defined(__BEOS__)
   95: #define PHP_NEED_REENTRANCY 1
   96: PHPAPI struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm);
   97: #else
   98: #define php_gmtime_r gmtime_r
   99: #ifdef MISSING_GMTIME_R_DECL
  100: struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm);
  101: #endif
  102: #endif
  103: 
  104: #if !defined(HAVE_STRTOK_R)
  105: PHPAPI char *php_strtok_r(char *s, const char *delim, char **last);
  106: #else
  107: #define php_strtok_r strtok_r
  108: #ifdef MISSING_STRTOK_R_DECL
  109: char *strtok_r(char *s, const char *delim, char **last);
  110: #endif
  111: #endif
  112: 
  113: #if !defined(HAVE_RAND_R)
  114: PHPAPI int php_rand_r(unsigned int *seed);
  115: #else
  116: #define php_rand_r rand_r
  117: #endif
  118: 
  119: END_EXTERN_C()
  120: 
  121: #if !defined(ZTS)
  122: #undef PHP_NEED_REENTRANCY
  123: #endif
  124: 
  125: #if defined(PHP_NEED_REENTRANCY)
  126: void reentrancy_startup(void);
  127: void reentrancy_shutdown(void);
  128: #else
  129: #define reentrancy_startup()
  130: #define reentrancy_shutdown()
  131: #endif
  132: 
  133: #endif	

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>