Parolin
0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
val
xcx_brotli
brotli-1.0.9
c
include
brotli
port.h
Go to the documentation of this file.
1
/* Copyright 2016 Google Inc. All Rights Reserved.
2
3
Distributed under MIT license.
4
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
*/
6
7
/* Macros for compiler / platform specific API declarations. */
8
9
#ifndef BROTLI_COMMON_PORT_H_
10
#define BROTLI_COMMON_PORT_H_
11
12
/* The following macros were borrowed from https://github.com/nemequ/hedley
13
* with permission of original author - Evan Nemerson <evan@nemerson.com> */
14
15
/* >>> >>> >>> hedley macros */
16
17
#define BROTLI_MAKE_VERSION(major, minor, revision) \
18
(((major) * 1000000) + ((minor) * 1000) + (revision))
19
20
#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)
21
#define BROTLI_GNUC_VERSION \
22
BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
23
#elif defined(__GNUC__)
24
#define BROTLI_GNUC_VERSION BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, 0)
25
#endif
26
27
#if defined(BROTLI_GNUC_VERSION)
28
#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) \
29
(BROTLI_GNUC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
30
#else
31
#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) (0)
32
#endif
33
34
#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000)
35
#define BROTLI_MSVC_VERSION \
36
BROTLI_MAKE_VERSION((_MSC_FULL_VER / 10000000), \
37
(_MSC_FULL_VER % 10000000) / 100000, \
38
(_MSC_FULL_VER % 100000) / 100)
39
#elif defined(_MSC_FULL_VER)
40
#define BROTLI_MSVC_VERSION \
41
BROTLI_MAKE_VERSION((_MSC_FULL_VER / 1000000), \
42
(_MSC_FULL_VER % 1000000) / 10000, \
43
(_MSC_FULL_VER % 10000) / 10)
44
#elif defined(_MSC_VER)
45
#define BROTLI_MSVC_VERSION \
46
BROTLI_MAKE_VERSION(_MSC_VER / 100, _MSC_VER % 100, 0)
47
#endif
48
49
#if !defined(_MSC_VER)
50
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) (0)
51
#elif defined(_MSC_VER) && (_MSC_VER >= 1400)
52
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
53
(_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch)))
54
#elif defined(_MSC_VER) && (_MSC_VER >= 1200)
55
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
56
(_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch)))
57
#else
58
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
59
(_MSC_VER >= ((major * 100) + (minor)))
60
#endif
61
62
#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)
63
#define BROTLI_INTEL_VERSION \
64
BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, \
65
__INTEL_COMPILER % 100, \
66
__INTEL_COMPILER_UPDATE)
67
#elif defined(__INTEL_COMPILER)
68
#define BROTLI_INTEL_VERSION \
69
BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)
70
#endif
71
72
#if defined(BROTLI_INTEL_VERSION)
73
#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) \
74
(BROTLI_INTEL_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
75
#else
76
#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) (0)
77
#endif
78
79
#if defined(__PGI) && \
80
defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)
81
#define BROTLI_PGI_VERSION \
82
BROTLI_MAKE_VERSION(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__)
83
#endif
84
85
#if defined(BROTLI_PGI_VERSION)
86
#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) \
87
(BROTLI_PGI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
88
#else
89
#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) (0)
90
#endif
91
92
#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000)
93
#define BROTLI_SUNPRO_VERSION \
94
BROTLI_MAKE_VERSION( \
95
(((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), \
96
(((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), \
97
(__SUNPRO_C & 0xf) * 10)
98
#elif defined(__SUNPRO_C)
99
#define BROTLI_SUNPRO_VERSION \
100
BROTLI_MAKE_VERSION((__SUNPRO_C >> 8) & 0xf, \
101
(__SUNPRO_C >> 4) & 0xf, \
102
(__SUNPRO_C) & 0xf)
103
#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000)
104
#define BROTLI_SUNPRO_VERSION \
105
BROTLI_MAKE_VERSION( \
106
(((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), \
107
(((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), \
108
(__SUNPRO_CC & 0xf) * 10)
109
#elif defined(__SUNPRO_CC)
110
#define BROTLI_SUNPRO_VERSION \
111
BROTLI_MAKE_VERSION((__SUNPRO_CC >> 8) & 0xf, \
112
(__SUNPRO_CC >> 4) & 0xf, \
113
(__SUNPRO_CC) & 0xf)
114
#endif
115
116
#if defined(BROTLI_SUNPRO_VERSION)
117
#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) \
118
(BROTLI_SUNPRO_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
119
#else
120
#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) (0)
121
#endif
122
123
#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION)
124
#define BROTLI_ARM_VERSION \
125
BROTLI_MAKE_VERSION((__ARMCOMPILER_VERSION / 1000000), \
126
(__ARMCOMPILER_VERSION % 1000000) / 10000, \
127
(__ARMCOMPILER_VERSION % 10000) / 100)
128
#elif defined(__CC_ARM) && defined(__ARMCC_VERSION)
129
#define BROTLI_ARM_VERSION \
130
BROTLI_MAKE_VERSION((__ARMCC_VERSION / 1000000), \
131
(__ARMCC_VERSION % 1000000) / 10000, \
132
(__ARMCC_VERSION % 10000) / 100)
133
#endif
134
135
#if defined(BROTLI_ARM_VERSION)
136
#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) \
137
(BROTLI_ARM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
138
#else
139
#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) (0)
140
#endif
141
142
#if defined(__ibmxl__)
143
#define BROTLI_IBM_VERSION \
144
BROTLI_MAKE_VERSION(__ibmxl_version__, \
145
__ibmxl_release__, \
146
__ibmxl_modification__)
147
#elif defined(__xlC__) && defined(__xlC_ver__)
148
#define BROTLI_IBM_VERSION \
149
BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff)
150
#elif defined(__xlC__)
151
#define BROTLI_IBM_VERSION BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, 0)
152
#endif
153
154
#if defined(BROTLI_IBM_VERSION)
155
#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) \
156
(BROTLI_IBM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
157
#else
158
#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) (0)
159
#endif
160
161
#if defined(__TI_COMPILER_VERSION__)
162
#define BROTLI_TI_VERSION \
163
BROTLI_MAKE_VERSION((__TI_COMPILER_VERSION__ / 1000000), \
164
(__TI_COMPILER_VERSION__ % 1000000) / 1000, \
165
(__TI_COMPILER_VERSION__ % 1000))
166
#endif
167
168
#if defined(BROTLI_TI_VERSION)
169
#define BROTLI_TI_VERSION_CHECK(major, minor, patch) \
170
(BROTLI_TI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
171
#else
172
#define BROTLI_TI_VERSION_CHECK(major, minor, patch) (0)
173
#endif
174
175
#if defined(__IAR_SYSTEMS_ICC__)
176
#if __VER__ > 1000
177
#define BROTLI_IAR_VERSION \
178
BROTLI_MAKE_VERSION((__VER__ / 1000000), \
179
(__VER__ / 1000) % 1000, \
180
(__VER__ % 1000))
181
#else
182
#define BROTLI_IAR_VERSION BROTLI_MAKE_VERSION(VER / 100, __VER__ % 100, 0)
183
#endif
184
#endif
185
186
#if defined(BROTLI_IAR_VERSION)
187
#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) \
188
(BROTLI_IAR_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
189
#else
190
#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) (0)
191
#endif
192
193
#if defined(__TINYC__)
194
#define BROTLI_TINYC_VERSION \
195
BROTLI_MAKE_VERSION(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100)
196
#endif
197
198
#if defined(BROTLI_TINYC_VERSION)
199
#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) \
200
(BROTLI_TINYC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
201
#else
202
#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) (0)
203
#endif
204
205
#if defined(__has_attribute)
206
#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \
207
__has_attribute(attribute)
208
#else
209
#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \
210
BROTLI_GNUC_VERSION_CHECK(major, minor, patch)
211
#endif
212
213
#if defined(__has_builtin)
214
#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \
215
__has_builtin(builtin)
216
#else
217
#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \
218
BROTLI_GNUC_VERSION_CHECK(major, minor, patch)
219
#endif
220
221
#if defined(__has_feature)
222
#define BROTLI_HAS_FEATURE(feature) __has_feature(feature)
223
#else
224
#define BROTLI_HAS_FEATURE(feature) (0)
225
#endif
226
227
#if defined(ADDRESS_SANITIZER) || BROTLI_HAS_FEATURE(address_sanitizer) || \
228
defined(THREAD_SANITIZER) || BROTLI_HAS_FEATURE(thread_sanitizer) || \
229
defined(MEMORY_SANITIZER) || BROTLI_HAS_FEATURE(memory_sanitizer)
230
#define BROTLI_SANITIZED 1
231
#else
232
#define BROTLI_SANITIZED 0
233
#endif
234
235
#if defined(_WIN32) || defined(__CYGWIN__)
236
#define BROTLI_PUBLIC
237
#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) || \
238
BROTLI_TI_VERSION_CHECK(8, 0, 0) || \
239
BROTLI_INTEL_VERSION_CHECK(16, 0, 0) || \
240
BROTLI_ARM_VERSION_CHECK(4, 1, 0) || \
241
BROTLI_IBM_VERSION_CHECK(13, 1, 0) || \
242
BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) || \
243
(BROTLI_TI_VERSION_CHECK(7, 3, 0) && \
244
defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))
245
#define BROTLI_PUBLIC __attribute__ ((visibility ("default")))
246
#else
247
#define BROTLI_PUBLIC
248
#endif
249
250
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \
251
!defined(__STDC_NO_VLA__) && !defined(__cplusplus) && \
252
!defined(__PGI) && !defined(__PGIC__) && !defined(__TINYC__)
253
#define BROTLI_ARRAY_PARAM(name) (name)
254
#else
255
#define BROTLI_ARRAY_PARAM(name)
256
#endif
257
258
/* <<< <<< <<< end of hedley macros. */
259
260
#if defined(BROTLI_SHARED_COMPILATION)
261
#if defined(_WIN32)
262
#if defined(BROTLICOMMON_SHARED_COMPILATION)
263
#define BROTLI_COMMON_API __declspec(dllexport)
264
#else
265
#define BROTLI_COMMON_API __declspec(dllimport)
266
#endif
/* BROTLICOMMON_SHARED_COMPILATION */
267
#if defined(BROTLIDEC_SHARED_COMPILATION)
268
#define BROTLI_DEC_API __declspec(dllexport)
269
#else
270
#define BROTLI_DEC_API __declspec(dllimport)
271
#endif
/* BROTLIDEC_SHARED_COMPILATION */
272
#if defined(BROTLIENC_SHARED_COMPILATION)
273
#define BROTLI_ENC_API __declspec(dllexport)
274
#else
275
#define BROTLI_ENC_API __declspec(dllimport)
276
#endif
/* BROTLIENC_SHARED_COMPILATION */
277
#else
/* _WIN32 */
278
#define BROTLI_COMMON_API BROTLI_PUBLIC
279
#define BROTLI_DEC_API BROTLI_PUBLIC
280
#define BROTLI_ENC_API BROTLI_PUBLIC
281
#endif
/* _WIN32 */
282
#else
/* BROTLI_SHARED_COMPILATION */
283
#define BROTLI_COMMON_API
284
#define BROTLI_DEC_API
285
#define BROTLI_ENC_API
286
#endif
287
288
#endif
/* BROTLI_COMMON_PORT_H_ */
Generated by
1.12.0