Coverage Report

Created: 2022-10-14 11:23

/src/php-src/main/php_reentrancy.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
   +----------------------------------------------------------------------+
3
   | Copyright (c) The PHP Group                                          |
4
   +----------------------------------------------------------------------+
5
   | This source file is subject to version 3.01 of the PHP license,      |
6
   | that is bundled with this package in the file LICENSE, and is        |
7
   | available through the world-wide-web at the following url:           |
8
   | http://www.php.net/license/3_01.txt                                  |
9
   | If you did not receive a copy of the PHP license and are unable to   |
10
   | obtain it through the world-wide-web, please send a note to          |
11
   | license@php.net so we can mail you a copy immediately.               |
12
   +----------------------------------------------------------------------+
13
   | Author: Sascha Schumann <sascha@schumann.cx>                         |
14
   +----------------------------------------------------------------------+
15
 */
16
17
#ifndef PHP_REENTRANCY_H
18
#define PHP_REENTRANCY_H
19
20
#include "php.h"
21
22
#include <sys/types.h>
23
#ifdef HAVE_DIRENT_H
24
#include <dirent.h>
25
#endif
26
#include <time.h>
27
28
/* currently, PHP does not check for these functions, but assumes
29
   that they are available on all systems. */
30
31
#define HAVE_LOCALTIME 1
32
#define HAVE_GMTIME 1
33
#define HAVE_ASCTIME 1
34
#define HAVE_CTIME 1
35
36
#if defined(PHP_IRIX_TIME_R)
37
#undef HAVE_ASCTIME_R
38
#undef HAVE_CTIME_R
39
#endif
40
41
#if defined(PHP_HPUX_TIME_R)
42
#undef HAVE_LOCALTIME_R
43
#undef HAVE_ASCTIME_R
44
#undef HAVE_CTIME_R
45
#undef HAVE_GMTIME_R
46
#endif
47
48
BEGIN_EXTERN_C()
49
50
#if !defined(HAVE_LOCALTIME_R) && defined(HAVE_LOCALTIME)
51
#define PHP_NEED_REENTRANCY 1
52
PHPAPI struct tm *php_localtime_r(const time_t *const timep, struct tm *p_tm);
53
#else
54
0
#define php_localtime_r localtime_r
55
#ifdef MISSING_LOCALTIME_R_DECL
56
struct tm *localtime_r(const time_t *const timep, struct tm *p_tm);
57
#endif
58
#endif
59
60
61
#if !defined(HAVE_CTIME_R) && defined(HAVE_CTIME)
62
#define PHP_NEED_REENTRANCY 1
63
PHPAPI char *php_ctime_r(const time_t *clock, char *buf);
64
#else
65
#define php_ctime_r ctime_r
66
#ifdef MISSING_CTIME_R_DECL
67
char *ctime_r(const time_t *clock, char *buf);
68
#endif
69
#endif
70
71
72
#if !defined(HAVE_ASCTIME_R) && defined(HAVE_ASCTIME)
73
#define PHP_NEED_REENTRANCY 1
74
PHPAPI char *php_asctime_r(const struct tm *tm, char *buf);
75
#else
76
0
#define php_asctime_r asctime_r
77
#ifdef MISSING_ASCTIME_R_DECL
78
char *asctime_r(const struct tm *tm, char *buf);
79
#endif
80
#endif
81
82
83
#if !defined(HAVE_GMTIME_R) && defined(HAVE_GMTIME)
84
#define PHP_NEED_REENTRANCY 1
85
PHPAPI struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm);
86
#else
87
0
#define php_gmtime_r gmtime_r
88
#ifdef MISSING_GMTIME_R_DECL
89
struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm);
90
#endif
91
#endif
92
93
#if !defined(HAVE_STRTOK_R)
94
PHPAPI char *php_strtok_r(char *s, const char *delim, char **last);
95
#else
96
31.3k
#define php_strtok_r strtok_r
97
#ifdef MISSING_STRTOK_R_DECL
98
char *strtok_r(char *s, const char *delim, char **last);
99
#endif
100
#endif
101
102
END_EXTERN_C()
103
104
#if !defined(ZTS)
105
#undef PHP_NEED_REENTRANCY
106
#endif
107
108
#if defined(PHP_NEED_REENTRANCY)
109
void reentrancy_startup(void);
110
void reentrancy_shutdown(void);
111
#else
112
#define reentrancy_startup()
113
#define reentrancy_shutdown()
114
#endif
115
116
#endif