]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libpng/lib/dist/pngconf.h
update
[l4.git] / l4 / pkg / libpng / lib / dist / pngconf.h
1
2 /* pngconf.h - machine configurable file for libpng
3  *
4  * libpng version 1.5.14 - January 24, 2013
5  *
6  * Copyright (c) 1998-2013 Glenn Randers-Pehrson
7  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
8  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
9  *
10  * This code is released under the libpng license.
11  * For conditions of distribution and use, see the disclaimer
12  * and license in png.h
13  *
14  */
15
16 /* Any machine specific code is near the front of this file, so if you
17  * are configuring libpng for a machine, you may want to read the section
18  * starting here down to where it starts to typedef png_color, png_text,
19  * and png_info.
20  */
21
22 #ifndef PNGCONF_H
23 #define PNGCONF_H
24
25 #ifndef PNG_BUILDING_SYMBOL_TABLE
26 /* PNG_NO_LIMITS_H may be used to turn off the use of the standard C
27  * definition file for  machine specific limits, this may impact the
28  * correctness of the definitions below (see uses of INT_MAX).
29  */
30 #  ifndef PNG_NO_LIMITS_H
31 #    include <limits.h>
32 #  endif
33
34 /* For the memory copy APIs (i.e. the standard definitions of these),
35  * because this file defines png_memcpy and so on the base APIs must
36  * be defined here.
37  */
38 #  ifdef BSD
39 #    include <strings.h>
40 #  else
41 #    include <string.h>
42 #  endif
43
44 /* For png_FILE_p - this provides the standard definition of a
45  * FILE
46  */
47 #  ifdef PNG_STDIO_SUPPORTED
48 #    include <stdio.h>
49 #  endif
50 #endif
51
52 /* This controls optimization of the reading of 16 and 32 bit values
53  * from PNG files.  It can be set on a per-app-file basis - it
54  * just changes whether a macro is used when the function is called.
55  * The library builder sets the default; if read functions are not
56  * built into the library the macro implementation is forced on.
57  */
58 #ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED
59 #  define PNG_USE_READ_MACROS
60 #endif
61 #if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS)
62 #  if PNG_DEFAULT_READ_MACROS
63 #    define PNG_USE_READ_MACROS
64 #  endif
65 #endif
66
67 /* COMPILER SPECIFIC OPTIONS.
68  *
69  * These options are provided so that a variety of difficult compilers
70  * can be used.  Some are fixed at build time (e.g. PNG_API_RULE
71  * below) but still have compiler specific implementations, others
72  * may be changed on a per-file basis when compiling against libpng.
73  */
74
75 /* The PNGARG macro protects us against machines that don't have function
76  * prototypes (ie K&R style headers).  If your compiler does not handle
77  * function prototypes, define this macro and use the included ansi2knr.
78  * I've always been able to use _NO_PROTO as the indicator, but you may
79  * need to drag the empty declaration out in front of here, or change the
80  * ifdef to suit your own needs.
81  */
82 #ifndef PNGARG
83
84 #  ifdef OF /* zlib prototype munger */
85 #    define PNGARG(arglist) OF(arglist)
86 #  else
87
88 #    ifdef _NO_PROTO
89 #      define PNGARG(arglist) ()
90 #    else
91 #      define PNGARG(arglist) arglist
92 #    endif /* _NO_PROTO */
93
94 #  endif /* OF */
95
96 #endif /* PNGARG */
97
98 /* Function calling conventions.
99  * =============================
100  * Normally it is not necessary to specify to the compiler how to call
101  * a function - it just does it - however on x86 systems derived from
102  * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems
103  * and some others) there are multiple ways to call a function and the
104  * default can be changed on the compiler command line.  For this reason
105  * libpng specifies the calling convention of every exported function and
106  * every function called via a user supplied function pointer.  This is
107  * done in this file by defining the following macros:
108  *
109  * PNGAPI    Calling convention for exported functions.
110  * PNGCBAPI  Calling convention for user provided (callback) functions.
111  * PNGCAPI   Calling convention used by the ANSI-C library (required
112  *           for longjmp callbacks and sometimes used internally to
113  *           specify the calling convention for zlib).
114  *
115  * These macros should never be overridden.  If it is necessary to
116  * change calling convention in a private build this can be done
117  * by setting PNG_API_RULE (which defaults to 0) to one of the values
118  * below to select the correct 'API' variants.
119  *
120  * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout.
121  *                This is correct in every known environment.
122  * PNG_API_RULE=1 Use the operating system convention for PNGAPI and
123  *                the 'C' calling convention (from PNGCAPI) for
124  *                callbacks (PNGCBAPI).  This is no longer required
125  *                in any known environment - if it has to be used
126  *                please post an explanation of the problem to the
127  *                libpng mailing list.
128  *
129  * These cases only differ if the operating system does not use the C
130  * calling convention, at present this just means the above cases
131  * (x86 DOS/Windows sytems) and, even then, this does not apply to
132  * Cygwin running on those systems.
133  *
134  * Note that the value must be defined in pnglibconf.h so that what
135  * the application uses to call the library matches the conventions
136  * set when building the library.
137  */
138
139 /* Symbol export
140  * =============
141  * When building a shared library it is almost always necessary to tell
142  * the compiler which symbols to export.  The png.h macro 'PNG_EXPORT'
143  * is used to mark the symbols.  On some systems these symbols can be
144  * extracted at link time and need no special processing by the compiler,
145  * on other systems the symbols are flagged by the compiler and just
146  * the declaration requires a special tag applied (unfortunately) in a
147  * compiler dependent way.  Some systems can do either.
148  *
149  * A small number of older systems also require a symbol from a DLL to
150  * be flagged to the program that calls it.  This is a problem because
151  * we do not know in the header file included by application code that
152  * the symbol will come from a shared library, as opposed to a statically
153  * linked one.  For this reason the application must tell us by setting
154  * the magic flag PNG_USE_DLL to turn on the special processing before
155  * it includes png.h.
156  *
157  * Four additional macros are used to make this happen:
158  *
159  * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from
160  *            the build or imported if PNG_USE_DLL is set - compiler
161  *            and system specific.
162  *
163  * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to
164  *                       'type', compiler specific.
165  *
166  * PNG_DLL_EXPORT Set to the magic to use during a libpng build to
167  *                make a symbol exported from the DLL.  Not used in the
168  *                public header files; see pngpriv.h for how it is used
169  *                in the libpng build.
170  *
171  * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come
172  *                from a DLL - used to define PNG_IMPEXP when
173  *                PNG_USE_DLL is set.
174  */
175
176 /* System specific discovery.
177  * ==========================
178  * This code is used at build time to find PNG_IMPEXP, the API settings
179  * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL
180  * import processing is possible.  On Windows systems it also sets
181  * compiler-specific macros to the values required to change the calling
182  * conventions of the various functions.
183  */
184 #if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\
185     defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
186   /* Windows system (DOS doesn't support DLLs).  Includes builds under Cygwin or
187    * MinGW on any architecture currently supported by Windows.  Also includes
188    * Watcom builds but these need special treatment because they are not
189    * compatible with GCC or Visual C because of different calling conventions.
190    */
191 #  if PNG_API_RULE == 2
192     /* If this line results in an error, either because __watcall is not
193      * understood or because of a redefine just below you cannot use *this*
194      * build of the library with the compiler you are using.  *This* build was
195      * build using Watcom and applications must also be built using Watcom!
196      */
197 #    define PNGCAPI __watcall
198 #  endif
199
200 #  if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
201 #    define PNGCAPI __cdecl
202 #    if PNG_API_RULE == 1
203        /* If this line results in an error __stdcall is not understood and
204         * PNG_API_RULE should not have been set to '1'.
205         */
206 #      define PNGAPI __stdcall
207 #    endif
208 #  else
209     /* An older compiler, or one not detected (erroneously) above,
210      * if necessary override on the command line to get the correct
211      * variants for the compiler.
212      */
213 #    ifndef PNGCAPI
214 #      define PNGCAPI _cdecl
215 #    endif
216 #    if PNG_API_RULE == 1 && !defined(PNGAPI)
217 #      define PNGAPI _stdcall
218 #    endif
219 #  endif /* compiler/api */
220   /* NOTE: PNGCBAPI always defaults to PNGCAPI. */
221
222 #  if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD)
223    ERROR: PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed
224 #  endif
225
226 #  if (defined(_MSC_VER) && _MSC_VER < 800) ||\
227       (defined(__BORLANDC__) && __BORLANDC__ < 0x500)
228     /* older Borland and MSC
229      * compilers used '__export' and required this to be after
230      * the type.
231      */
232 #    ifndef PNG_EXPORT_TYPE
233 #      define PNG_EXPORT_TYPE(type) type PNG_IMPEXP
234 #    endif
235 #    define PNG_DLL_EXPORT __export
236 #  else /* newer compiler */
237 #    define PNG_DLL_EXPORT __declspec(dllexport)
238 #    ifndef PNG_DLL_IMPORT
239 #      define PNG_DLL_IMPORT __declspec(dllimport)
240 #    endif
241 #  endif /* compiler */
242
243 #else /* !Windows */
244 #  if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
245 #    define PNGAPI _System
246 #  else /* !Windows/x86 && !OS/2 */
247     /* Use the defaults, or define PNG*API on the command line (but
248      * this will have to be done for every compile!)
249      */
250 #  endif /* other system, !OS/2 */
251 #endif /* !Windows/x86 */
252
253 /* Now do all the defaulting . */
254 #ifndef PNGCAPI
255 #  define PNGCAPI
256 #endif
257 #ifndef PNGCBAPI
258 #  define PNGCBAPI PNGCAPI
259 #endif
260 #ifndef PNGAPI
261 #  define PNGAPI PNGCAPI
262 #endif
263
264 /* PNG_IMPEXP may be set on the compilation system command line or (if not set)
265  * then in an internal header file when building the library, otherwise (when
266  * using the library) it is set here.
267  */
268 #ifndef PNG_IMPEXP
269 #  if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT)
270      /* This forces use of a DLL, disallowing static linking */
271 #    define PNG_IMPEXP PNG_DLL_IMPORT
272 #  endif
273
274 #  ifndef PNG_IMPEXP
275 #    define PNG_IMPEXP
276 #  endif
277 #endif
278
279 /* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat
280  * 'attributes' as a storage class - the attributes go at the start of the
281  * function definition, and attributes are always appended regardless of the
282  * compiler.  This considerably simplifies these macros but may cause problems
283  * if any compilers both need function attributes and fail to handle them as
284  * a storage class (this is unlikely.)
285  */
286 #ifndef PNG_FUNCTION
287 #  define PNG_FUNCTION(type, name, args, attributes) attributes type name args
288 #endif
289
290 #ifndef PNG_EXPORT_TYPE
291 #  define PNG_EXPORT_TYPE(type) PNG_IMPEXP type
292 #endif
293
294    /* The ordinal value is only relevant when preprocessing png.h for symbol
295     * table entries, so we discard it here.  See the .dfn files in the
296     * scripts directory.
297     */
298 #ifndef PNG_EXPORTA
299
300 #  define PNG_EXPORTA(ordinal, type, name, args, attributes)\
301       PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \
302         extern attributes)
303 #endif
304
305 /* ANSI-C (C90) does not permit a macro to be invoked with an empty argument,
306  * so make something non-empty to satisfy the requirement:
307  */
308 #define PNG_EMPTY /*empty list*/
309
310 #define PNG_EXPORT(ordinal, type, name, args)\
311    PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY)
312
313 /* Use PNG_REMOVED to comment out a removed interface. */
314 #ifndef PNG_REMOVED
315 #  define PNG_REMOVED(ordinal, type, name, args, attributes)
316 #endif
317
318 #ifndef PNG_CALLBACK
319 #  define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args)
320 #endif
321
322 /* Support for compiler specific function attributes.  These are used
323  * so that where compiler support is available incorrect use of API
324  * functions in png.h will generate compiler warnings.
325  *
326  * Added at libpng-1.2.41.
327  */
328
329 #ifndef PNG_NO_PEDANTIC_WARNINGS
330 #  ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED
331 #    define PNG_PEDANTIC_WARNINGS_SUPPORTED
332 #  endif
333 #endif
334
335 #ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED
336   /* Support for compiler specific function attributes.  These are used
337    * so that where compiler support is available incorrect use of API
338    * functions in png.h will generate compiler warnings.  Added at libpng
339    * version 1.2.41.
340    */
341 #  if defined(__GNUC__)
342 #    ifndef PNG_USE_RESULT
343 #      define PNG_USE_RESULT __attribute__((__warn_unused_result__))
344 #    endif
345 #    ifndef PNG_NORETURN
346 #      define PNG_NORETURN   __attribute__((__noreturn__))
347 #    endif
348 #    if __GNUC__ >= 3
349 #      ifndef PNG_ALLOCATED
350 #        define PNG_ALLOCATED  __attribute__((__malloc__))
351 #      endif
352 #      ifndef PNG_DEPRECATED
353 #        define PNG_DEPRECATED __attribute__((__deprecated__))
354 #      endif
355 #      ifndef PNG_PRIVATE
356 #        if 0 /* Doesn't work so we use deprecated instead*/
357 #          define PNG_PRIVATE \
358             __attribute__((warning("This function is not exported by libpng.")))
359 #        else
360 #          define PNG_PRIVATE \
361             __attribute__((__deprecated__))
362 #        endif
363 #      endif
364 #    endif /*  __GNUC__ >= 3 */
365 #  endif /* __GNUC__ */
366
367 #  if defined(_MSC_VER)  && (_MSC_VER >= 1300)
368 #    ifndef PNG_USE_RESULT
369 #      define PNG_USE_RESULT /* not supported */
370 #    endif
371 #    ifndef PNG_NORETURN
372 #      define PNG_NORETURN __declspec(noreturn)
373 #    endif
374 #    ifndef PNG_ALLOCATED
375 #      if (_MSC_VER >= 1400)
376 #        define PNG_ALLOCATED __declspec(restrict)
377 #      endif
378 #    endif
379 #    ifndef PNG_DEPRECATED
380 #      define PNG_DEPRECATED __declspec(deprecated)
381 #    endif
382 #    ifndef PNG_PRIVATE
383 #      define PNG_PRIVATE __declspec(deprecated)
384 #    endif
385 #  endif /* _MSC_VER */
386 #endif /* PNG_PEDANTIC_WARNINGS */
387
388 #ifndef PNG_DEPRECATED
389 #  define PNG_DEPRECATED  /* Use of this function is deprecated */
390 #endif
391 #ifndef PNG_USE_RESULT
392 #  define PNG_USE_RESULT  /* The result of this function must be checked */
393 #endif
394 #ifndef PNG_NORETURN
395 #  define PNG_NORETURN    /* This function does not return */
396 #endif
397 #ifndef PNG_ALLOCATED
398 #  define PNG_ALLOCATED   /* The result of the function is new memory */
399 #endif
400 #ifndef PNG_PRIVATE
401 #  define PNG_PRIVATE     /* This is a private libpng function */
402 #endif
403 #ifndef PNG_FP_EXPORT     /* A floating point API. */
404 #  ifdef PNG_FLOATING_POINT_SUPPORTED
405 #     define PNG_FP_EXPORT(ordinal, type, name, args)\
406          PNG_EXPORT(ordinal, type, name, args);
407 #  else                   /* No floating point APIs */
408 #     define PNG_FP_EXPORT(ordinal, type, name, args)
409 #  endif
410 #endif
411 #ifndef PNG_FIXED_EXPORT  /* A fixed point API. */
412 #  ifdef PNG_FIXED_POINT_SUPPORTED
413 #     define PNG_FIXED_EXPORT(ordinal, type, name, args)\
414          PNG_EXPORT(ordinal, type, name, args);
415 #  else                   /* No fixed point APIs */
416 #     define PNG_FIXED_EXPORT(ordinal, type, name, args)
417 #  endif
418 #endif
419
420 /* The following uses const char * instead of char * for error
421  * and warning message functions, so some compilers won't complain.
422  * If you do not want to use const, define PNG_NO_CONST here.
423  *
424  * This should not change how the APIs are called, so it can be done
425  * on a per-file basis in the application.
426  */
427 #ifndef PNG_CONST
428 #  ifndef PNG_NO_CONST
429 #    define PNG_CONST const
430 #  else
431 #    define PNG_CONST
432 #  endif
433 #endif
434
435 /* Some typedefs to get us started.  These should be safe on most of the
436  * common platforms.  The typedefs should be at least as large as the
437  * numbers suggest (a png_uint_32 must be at least 32 bits long), but they
438  * don't have to be exactly that size.  Some compilers dislike passing
439  * unsigned shorts as function parameters, so you may be better off using
440  * unsigned int for png_uint_16.
441  */
442
443 #if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL)
444 typedef unsigned int png_uint_32;
445 typedef int png_int_32;
446 #else
447 typedef unsigned long png_uint_32;
448 typedef long png_int_32;
449 #endif
450 typedef unsigned short png_uint_16;
451 typedef short png_int_16;
452 typedef unsigned char png_byte;
453
454 #ifdef PNG_NO_SIZE_T
455 typedef unsigned int png_size_t;
456 #else
457 typedef size_t png_size_t;
458 #endif
459 #define png_sizeof(x) (sizeof (x))
460
461 /* The following is needed for medium model support.  It cannot be in the
462  * pngpriv.h header.  Needs modification for other compilers besides
463  * MSC.  Model independent support declares all arrays and pointers to be
464  * large using the far keyword.  The zlib version used must also support
465  * model independent data.  As of version zlib 1.0.4, the necessary changes
466  * have been made in zlib.  The USE_FAR_KEYWORD define triggers other
467  * changes that are needed. (Tim Wegner)
468  */
469
470 /* Separate compiler dependencies (problem here is that zlib.h always
471  * defines FAR. (SJT)
472  */
473 #ifdef __BORLANDC__
474 #  if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
475 #    define LDATA 1
476 #  else
477 #    define LDATA 0
478 #  endif
479   /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */
480 #  if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
481 #    define PNG_MAX_MALLOC_64K /* only used in build */
482 #    if (LDATA != 1)
483 #      ifndef FAR
484 #        define FAR __far
485 #      endif
486 #      define USE_FAR_KEYWORD
487 #    endif   /* LDATA != 1 */
488          /* Possibly useful for moving data out of default segment.
489           * Uncomment it if you want. Could also define FARDATA as
490           * const if your compiler supports it. (SJT)
491 #        define FARDATA FAR
492           */
493 #  endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
494 #endif   /* __BORLANDC__ */
495
496
497 /* Suggest testing for specific compiler first before testing for
498  * FAR.  The Watcom compiler defines both __MEDIUM__ and M_I86MM,
499  * making reliance oncertain keywords suspect. (SJT)
500  */
501
502 /* MSC Medium model */
503 #ifdef FAR
504 #  ifdef M_I86MM
505 #    define USE_FAR_KEYWORD
506 #    define FARDATA FAR
507 #    include <dos.h>
508 #  endif
509 #endif
510
511 /* SJT: default case */
512 #ifndef FAR
513 #  define FAR
514 #endif
515
516 /* At this point FAR is always defined */
517 #ifndef FARDATA
518 #  define FARDATA
519 #endif
520
521 /* Typedef for floating-point numbers that are converted
522  * to fixed-point with a multiple of 100,000, e.g., gamma
523  */
524 typedef png_int_32 png_fixed_point;
525
526 /* Add typedefs for pointers */
527 typedef void                      FAR * png_voidp;
528 typedef PNG_CONST void            FAR * png_const_voidp;
529 typedef png_byte                  FAR * png_bytep;
530 typedef PNG_CONST png_byte        FAR * png_const_bytep;
531 typedef png_uint_32               FAR * png_uint_32p;
532 typedef PNG_CONST png_uint_32     FAR * png_const_uint_32p;
533 typedef png_int_32                FAR * png_int_32p;
534 typedef PNG_CONST png_int_32      FAR * png_const_int_32p;
535 typedef png_uint_16               FAR * png_uint_16p;
536 typedef PNG_CONST png_uint_16     FAR * png_const_uint_16p;
537 typedef png_int_16                FAR * png_int_16p;
538 typedef PNG_CONST png_int_16      FAR * png_const_int_16p;
539 typedef char                      FAR * png_charp;
540 typedef PNG_CONST char            FAR * png_const_charp;
541 typedef png_fixed_point           FAR * png_fixed_point_p;
542 typedef PNG_CONST png_fixed_point FAR * png_const_fixed_point_p;
543 typedef png_size_t                FAR * png_size_tp;
544 typedef PNG_CONST png_size_t      FAR * png_const_size_tp;
545
546 #ifdef PNG_STDIO_SUPPORTED
547 typedef FILE            * png_FILE_p;
548 #endif
549
550 #ifdef PNG_FLOATING_POINT_SUPPORTED
551 typedef double           FAR * png_doublep;
552 typedef PNG_CONST double FAR * png_const_doublep;
553 #endif
554
555 /* Pointers to pointers; i.e. arrays */
556 typedef png_byte        FAR * FAR * png_bytepp;
557 typedef png_uint_32     FAR * FAR * png_uint_32pp;
558 typedef png_int_32      FAR * FAR * png_int_32pp;
559 typedef png_uint_16     FAR * FAR * png_uint_16pp;
560 typedef png_int_16      FAR * FAR * png_int_16pp;
561 typedef PNG_CONST char  FAR * FAR * png_const_charpp;
562 typedef char            FAR * FAR * png_charpp;
563 typedef png_fixed_point FAR * FAR * png_fixed_point_pp;
564 #ifdef PNG_FLOATING_POINT_SUPPORTED
565 typedef double          FAR * FAR * png_doublepp;
566 #endif
567
568 /* Pointers to pointers to pointers; i.e., pointer to array */
569 typedef char            FAR * FAR * FAR * png_charppp;
570
571 /* png_alloc_size_t is guaranteed to be no smaller than png_size_t,
572  * and no smaller than png_uint_32.  Casts from png_size_t or png_uint_32
573  * to png_alloc_size_t are not necessary; in fact, it is recommended
574  * not to use them at all so that the compiler can complain when something
575  * turns out to be problematic.
576  * Casts in the other direction (from png_alloc_size_t to png_size_t or
577  * png_uint_32) should be explicitly applied; however, we do not expect
578  * to encounter practical situations that require such conversions.
579  */
580 #if defined(__TURBOC__) && !defined(__FLAT__)
581    typedef unsigned long png_alloc_size_t;
582 #else
583 #  if defined(_MSC_VER) && defined(MAXSEG_64K)
584      typedef unsigned long    png_alloc_size_t;
585 #  else
586      /* This is an attempt to detect an old Windows system where (int) is
587       * actually 16 bits, in that case png_malloc must have an argument with a
588       * bigger size to accomodate the requirements of the library.
589       */
590 #    if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \
591         (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL)
592        typedef DWORD         png_alloc_size_t;
593 #    else
594        typedef png_size_t    png_alloc_size_t;
595 #    endif
596 #  endif
597 #endif
598
599 #endif /* PNGCONF_H */