24#ifndef PNG_BUILDING_SYMBOL_TABLE
44#ifdef PNG_STDIO_SUPPORTED
49#ifdef PNG_SETJMP_SUPPORTED
54#ifdef PNG_CONVERT_tIME_SUPPORTED
64#define PNG_CONST const
72#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED
73# define PNG_USE_READ_MACROS
75#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS)
76# if PNG_DEFAULT_READ_MACROS
77# define PNG_USE_READ_MACROS
94# define PNGARG(arglist) arglist
183#if defined(_WIN32) || defined(__WIN32__) || defined(__NT__) || \
190# if PNG_API_RULE == 2
196# define PNGCAPI __watcall
199# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800))
200# define PNGCAPI __cdecl
201# if PNG_API_RULE == 1
205# define PNGAPI __stdcall
213# define PNGCAPI _cdecl
215# if PNG_API_RULE == 1 && !defined(PNGAPI)
216# define PNGAPI _stdcall
222# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD)
223# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed"
226# if (defined(_MSC_VER) && _MSC_VER < 800) ||\
227 (defined(__BORLANDC__) && __BORLANDC__ < 0x500)
232# ifndef PNG_EXPORT_TYPE
233# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP
235# define PNG_DLL_EXPORT __export
237# define PNG_DLL_EXPORT __declspec(dllexport)
238# ifndef PNG_DLL_IMPORT
239# define PNG_DLL_IMPORT __declspec(dllimport)
244# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
245# define PNGAPI _System
258# define PNGCBAPI PNGCAPI
261# define PNGAPI PNGCAPI
269# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT)
271# define PNG_IMPEXP PNG_DLL_IMPORT
287# define PNG_FUNCTION(type, name, args, attributes) attributes type name args
290#ifndef PNG_EXPORT_TYPE
291# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type
300# define PNG_EXPORTA(ordinal, type, name, args, attributes) \
301 PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \
302 PNG_LINKAGE_API attributes)
310#define PNG_EXPORT(ordinal, type, name, args) \
311 PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY)
315# define PNG_REMOVED(ordinal, type, name, args, attributes)
319# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args)
329#ifndef PNG_NO_PEDANTIC_WARNINGS
330# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED
331# define PNG_PEDANTIC_WARNINGS_SUPPORTED
335#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED
342# if defined(__clang__) && defined(__has_attribute)
344# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__)
345# define PNG_USE_RESULT __attribute__((__warn_unused_result__))
347# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__)
348# define PNG_NORETURN __attribute__((__noreturn__))
350# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__)
351# define PNG_ALLOCATED __attribute__((__malloc__))
353# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__)
354# define PNG_DEPRECATED __attribute__((__deprecated__))
356# if !defined(PNG_PRIVATE)
357# ifdef __has_extension
358# if __has_extension(attribute_unavailable_with_message)
359# define PNG_PRIVATE __attribute__((__unavailable__(\
360 "This function is not exported by libpng.")))
365# define PNG_RESTRICT __restrict
368# elif defined(__GNUC__)
369# ifndef PNG_USE_RESULT
370# define PNG_USE_RESULT __attribute__((__warn_unused_result__))
373# define PNG_NORETURN __attribute__((__noreturn__))
376# ifndef PNG_ALLOCATED
377# define PNG_ALLOCATED __attribute__((__malloc__))
379# ifndef PNG_DEPRECATED
380# define PNG_DEPRECATED __attribute__((__deprecated__))
384# define PNG_PRIVATE \
385 __attribute__((warning("This function is not exported by libpng.")))
387# define PNG_PRIVATE \
388 __attribute__((__deprecated__))
391# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1))
393# define PNG_RESTRICT __restrict
398# elif defined(_MSC_VER) && (_MSC_VER >= 1300)
399# ifndef PNG_USE_RESULT
400# define PNG_USE_RESULT
403# define PNG_NORETURN __declspec(noreturn)
405# ifndef PNG_ALLOCATED
406# if (_MSC_VER >= 1400)
407# define PNG_ALLOCATED __declspec(restrict)
410# ifndef PNG_DEPRECATED
411# define PNG_DEPRECATED __declspec(deprecated)
414# define PNG_PRIVATE __declspec(deprecated)
417# if (_MSC_VER >= 1400)
418# define PNG_RESTRICT __restrict
422# elif defined(__WATCOMC__)
424# define PNG_RESTRICT __restrict
429#ifndef PNG_DEPRECATED
430# define PNG_DEPRECATED
432#ifndef PNG_USE_RESULT
433# define PNG_USE_RESULT
439# define PNG_ALLOCATED
449# ifdef PNG_FLOATING_POINT_SUPPORTED
450# define PNG_FP_EXPORT(ordinal, type, name, args)\
451 PNG_EXPORT(ordinal, type, name, args);
453# define PNG_FP_EXPORT(ordinal, type, name, args)
456#ifndef PNG_FIXED_EXPORT
457# ifdef PNG_FIXED_POINT_SUPPORTED
458# define PNG_FIXED_EXPORT(ordinal, type, name, args)\
459 PNG_EXPORT(ordinal, type, name, args);
461# define PNG_FIXED_EXPORT(ordinal, type, name, args)
465#ifndef PNG_BUILDING_SYMBOL_TABLE
480#if CHAR_BIT == 8 && UCHAR_MAX == 255
481 typedef unsigned char png_byte;
483# error "libpng requires 8-bit bytes"
486#if INT_MIN == -32768 && INT_MAX == 32767
487 typedef int png_int_16;
488#elif SHRT_MIN == -32768 && SHRT_MAX == 32767
489 typedef short png_int_16;
491# error "libpng requires a signed 16-bit type"
495 typedef unsigned int png_uint_16;
496#elif USHRT_MAX == 65535
497 typedef unsigned short png_uint_16;
499# error "libpng requires an unsigned 16-bit type"
502#if INT_MIN < -2147483646 && INT_MAX > 2147483646
503 typedef int png_int_32;
504#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646
505 typedef long int png_int_32;
507# error "libpng requires a signed 32-bit (or more) type"
510#if UINT_MAX > 4294967294U
512#elif ULONG_MAX > 4294967294U
515# error "libpng requires an unsigned 32-bit (or more) type"
531#ifndef PNG_SMALL_SIZE_T
536# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\
537 (defined(_MSC_VER) && defined(MAXSEG_64K))
538# define PNG_SMALL_SIZE_T
554#ifdef PNG_SMALL_SIZE_T
596#ifdef PNG_STDIO_SUPPORTED
597typedef FILE * png_FILE_p;
600#ifdef PNG_FLOATING_POINT_SUPPORTED
614#ifdef PNG_FLOATING_POINT_SUPPORTED
__kernel_ptrdiff_t ptrdiff_t
png_int_32 png_fixed_point
png_fixed_point ** png_fixed_point_pp
const png_byte * png_const_bytep
const png_uint_16 * png_const_uint_16p
const png_int_32 * png_const_int_32p
const png_int_16 * png_const_int_16p
png_uint_32 ** png_uint_32pp
png_int_16 ** png_int_16pp
png_uint_16 * png_uint_16p
const char ** png_const_charpp
png_fixed_point * png_fixed_point_p
png_uint_32 * png_uint_32p
const void * png_const_voidp
const png_fixed_point * png_const_fixed_point_p
const png_uint_32 * png_const_uint_32p
png_int_32 ** png_int_32pp
const char * png_const_charp
png_uint_16 ** png_uint_16pp
const size_t * png_const_size_tp
png_double ** png_doublepp
const png_double * png_const_doublep