1 #ifndef _ZZIP__STDINT_H /* zzip-stdint.h */ 2 #define _ZZIP__STDINT_H 1 3 /* this file ensures that we have some kind of typedef declarations for 4 unsigned C9X typedefs. The ISO C 9X: 7.18 Integer types file is stdint.h 5 */ 6 7 #include <zzip/conf.h> 8 9 /* enforce use of ifdef'd C9X entries in system headers */ 10 #define __USE_ANSI 1 11 #define __USE_ISOC9X 1 12 13 #ifdef ZZIP_HAVE_STDINT_H 14 /* ISO C 9X: 7.18 Integer types <stdint.h> */ 15 #include <stdint.h> 16 #elif defined ZZIP_HAVE_SYS_INT_TYPES_H /*solaris*/ 17 #include <sys/int_types.h> 18 #elif defined ZZIP_HAVE_INTTYPES_H /*freebsd*/ 19 #include <inttypes.h> 20 #else 21 typedef unsigned char uint8_t; typedef signed char int8_t; 22 23 # if ZZIP_SIZEOF_INT && ZZIP_SIZEOF_INT == 2 24 typedef unsigned int uint16_t; typedef signed int int16_t; 25 # elif ZZIP_SIZEOF_SHORT && ZZIP_SIZEOF_SHORT == 2 26 typedef unsigned short uint16_t; typedef signed short int16_t; 27 # else 28 # error unable to typedef int16_t from either int or short 29 typedef unsigned short uint16_t; typedef signed short int16_t; 30 # endif 31 32 # if defined ZZIP_SIZEOF_INT && ZZIP_SIZEOF_INT == 4 33 typedef unsigned int uint32_t; typedef signed int int32_t; 34 # elif defined ZZIP_SIZEOF_LONG && ZZIP_SIZEOF_LONG == 4 35 typedef unsigned long uint32_t; typedef signed long int32_t; 36 # else 37 # error unable to typedef int32_t from either int or long 38 typedef unsigned long uint32_t; typedef signed long int32_t; 39 # endif 40 41 /* either (long long) on Unix or (__int64) on Windows */ 42 typedef unsigned _zzip___int64 uint64_t; typedef _zzip___int64 int64_t; 43 44 # if defined ZZIP_SIZEOF_INT_P 45 # if ZZIP_SIZEOF_INT_P == ZZIP_SIZEOF_LONG+0 46 typedef long intptr_t; 47 # elif ZZIP_SIZEOF_INT_P == ZZIP_SIZEOF_INT+0 48 typedef int intptr_t; 49 # else 50 typedef int64_t intptr_t; 51 # endif 52 # endif 53 54 #endif /* ZZIP_HAVE_... */ 55 #endif /*_ZZIP_STDINT_H*/ 56 57