forked from laruence/php-src
-
Notifications
You must be signed in to change notification settings - Fork 0
/
php_stdint.h
207 lines (183 loc) · 4.66 KB
/
php_stdint.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/*
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2015 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 |
| [email protected] so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Michael Wallner <[email protected]> |
+----------------------------------------------------------------------+
*/
#ifndef PHP_STDINT_H
#define PHP_STDINT_H
#if defined(_MSC_VER)
/* Make sure the regular stdint.h wasn't included already and prevent it to be
included afterwards. Though if some other library needs some stuff from
stdint.h included afterwards and misses it, we'd have to extend ours. On
the other hand, if stdint.h was included before, some conflicts might
happen so we'd likewise have to fix ours. */
# if !defined(_STDINT)
# define _STDINT
# include "win32/php_stdint.h"
# include "win32/php_inttypes.h"
# endif
# define HAVE_INT8_T 1
# define HAVE_UINT8_T 1
# define HAVE_INT16_T 1
# define HAVE_UINT16_T 1
# define HAVE_INT32_T 1
# define HAVE_UINT32_T 1
# define HAVE_INT64_T 1
# define HAVE_UINT64_T 1
#else
#include "php_config.h"
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#if HAVE_STDINT_H
# include <stdint.h>
#endif
#ifndef HAVE_INT8_T
# ifdef HAVE_INT8
typedef int8 int8_t;
# else
typedef signed char int8_t;
# endif
#endif
#ifndef INT8_C
# define INT8_C(c) c
#endif
#ifndef HAVE_UINT8_T
# ifdef HAVE_UINT8
typedef uint8 uint8_t
# elif HAVE_U_INT8_T
typedef u_int8_t uint8_t;
# else
typedef unsigned char uint8_t;
# endif
#endif
#ifndef UINT8_C
# define UINT8_C(c) c
#endif
#ifndef HAVE_INT16_T
# ifdef HAVE_INT16
typedef int16 int16_t;
# elif SIZEOF_SHORT >= 2
typedef signed short int16_t;
# else
# error "No suitable 16bit integer type found"
# endif
#endif
#ifndef INT16_C
# define INT16_C(c) c
#endif
#ifndef HAVE_UINT16_T
# ifdef HAVE_UINT16
typedef uint16 uint16_t
# elif HAVE_U_INT16_T
typedef u_int16_t uint16_t;
# elif SIZEOF_SHORT >= 2
typedef unsigned short uint16_t;
# else
# error "No suitable 16bit integer type found"
# endif
#endif
#ifndef UINT16_C
# define UINT16_C(c) c
#endif
#ifndef HAVE_INT32_T
# ifdef HAVE_INT32
typedef int32 int32_t;
# elif SIZEOF_INT >= 4
typedef int int32_t;
# elif SIZEOF_LONG >= 4
typedef long int32_t;
# else
# error "No suitable 32bit integer type found"
# endif
#endif
#ifndef INT32_C
# define INT32_C(c) c
#endif
#ifndef HAVE_UINT32_T
# ifdef HAVE_UINT32
typedef uint32 uint32_t
# elif HAVE_U_INT32_T
typedef u_int32_t uint32_t;
# elif SIZEOF_INT >= 4
typedef unsigned int uint32_t;
# elif SIZEOF_LONG >= 4
typedef unsigned long uint32_t;
# else
# error "No suitable 32bit integer type found"
# endif
#endif
#ifndef UINT32_C
# define UINT32_C(c) c ## U
#endif
#ifndef HAVE_INT64_T
# ifdef HAVE_INT64
typedef int64 int64_t;
# elif SIZEOF_INT >= 8
typedef int int64_t;
# elif SIZEOF_LONG >= 8
typedef long int64_t;
# elif SIZEOF_LONG_LONG >= 8
typedef long long int64_t;
# else
# error "No suitable 64bit integer type found"
# endif
#endif
#ifndef INT64_C
# if SIZEOF_INT >= 8
# define INT64_C(c) c
# elif SIZEOF_LONG >= 8
# define INT64_C(c) c ## L
# elif SIZEOF_LONG_LONG >= 8
# define INT64_C(c) c ## LL
# endif
#endif
#ifndef HAVE_UINT64_T
# ifdef HAVE_UINT64
typedef uint64 uint64_t
# elif HAVE_U_INT64_T
typedef u_int64_t uint64_t;
# elif SIZEOF_INT >= 8
typedef unsigned int uint64_t;
# elif SIZEOF_LONG >= 8
typedef unsigned long uint64_t;
# elif SIZEOF_LONG_LONG >= 8
typedef unsigned long long uint64_t;
# else
# error "No suitable 64bit integer type found"
# endif
#endif
#ifndef UINT64_C
# if SIZEOF_INT >= 8
# define UINT64_C(c) c ## U
# elif SIZEOF_LONG >= 8
# define UINT64_C(c) c ## UL
# elif SIZEOF_LONG_LONG >= 8
# define UINT64_C(c) c ## ULL
# endif
#endif
#endif /* !PHP_WIN32 */
#endif /* PHP_STDINT_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: sw=4 ts=4 fdm=marker
* vim<600: sw=4 ts=4
*/