/bncsutil/src/bncsutil/mutil_types.h
http://ghostcb.googlecode.com/ · C Header · 145 lines · 94 code · 25 blank · 26 comment · 3 complexity · 962ce6b98e1ba278890f6a64ca66f4cb MD5 · raw file
- /**
- * BNCSutil
- * Battle.Net Utility Library
- *
- * Copyright (C) 2004-2006 Eric Naeseth
- *
- * Integer Types
- * November 12, 2004
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * A copy of the GNU Lesser General Public License is included in the BNCSutil
- * distribution in the file COPYING. If you did not receive this copy,
- * write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307 USA
- */
- #ifndef BNCSUTIL_MUTIL_TYPES_H_INCLUDED
- #define BNCSUTIL_MUTIL_TYPES_H_INCLUDED
- #ifdef WIN32
- #include "ms_stdint.h"
- #else
- #if defined(_MSC_VER) || (defined(HAVE_STDINT_H) && !HAVE_STDINT_H)
- // no stdint.h available
- // so just wing it
- typedef signed char int8_t;
- typedef unsigned char uint8_t;
- typedef short int16_t;
- typedef unsigned short uint16_t;
- typedef int int32_t;
- typedef unsigned int uint32_t;
- #ifdef _MSC_VER
- typedef __int64 int64_t;
- typedef unsigned __int64 uint64_t;
- #else
- typedef long long int64_t;
- typedef unsigned long long uint64_t;
- #endif
- typedef int32_t register_t;
- #ifndef _MSC_VER
- typedef long int intptr_t;
- typedef unsigned long int uintptr_t;
- #endif
- typedef int8_t int_least8_t;
- typedef int16_t int_least16_t;
- typedef int32_t int_least32_t;
- typedef int64_t int_least64_t;
- typedef uint8_t uint_least8_t;
- typedef uint16_t uint_least16_t;
- typedef uint32_t uint_least32_t;
- typedef uint64_t uint_least64_t;
- typedef int8_t int_fast8_t;
- typedef int16_t int_fast16_t;
- typedef int32_t int_fast32_t;
- typedef int64_t int_fast64_t;
- typedef uint8_t uint_fast8_t;
- typedef uint16_t uint_fast16_t;
- typedef uint32_t uint_fast32_t;
- typedef uint64_t uint_fast64_t;
- typedef long long intmax_t;
- typedef unsigned long long uintmax_t;
- #if (!defined(__cplusplus)) || defined(__STDC_LIMIT_MACROS)
- #define INT8_MAX 127
- #define INT16_MAX 32767
- #define INT32_MAX 2147483647
- #define INT64_MAX 9223372036854775807LL
- #define INT8_MIN -128
- #define INT16_MIN -32768
- #define INT32_MIN (-INT32_MAX-1)
- #define INT64_MIN (-INT64_MAX-1)
- #define UINT8_MAX 255
- #define UINT16_MAX 65535
- #define UINT32_MAX 4294967295U
- #define UINT64_MAX 18446744073709551615ULL
- #define INT_LEAST8_MIN INT8_MIN
- #define INT_LEAST16_MIN INT16_MIN
- #define INT_LEAST32_MIN INT32_MIN
- #define INT_LEAST64_MIN INT64_MIN
- #define INT_LEAST8_MAX INT8_MAX
- #define INT_LEAST16_MAX INT16_MAX
- #define INT_LEAST32_MAX INT32_MAX
- #define INT_LEAST64_MAX INT64_MAX
- #define UINT_LEAST8_MAX UINT8_MAX
- #define UINT_LEAST16_MAX UINT16_MAX
- #define UINT_LEAST32_MAX UINT32_MAX
- #define UINT_LEAST64_MAX UINT64_MAX
- #define INT_FAST8_MIN INT8_MIN
- #define INT_FAST16_MIN INT16_MIN
- #define INT_FAST32_MIN INT32_MIN
- #define INT_FAST64_MIN INT64_MIN
- #define INT_FAST8_MAX INT8_MAX
- #define INT_FAST16_MAX INT16_MAX
- #define INT_FAST32_MAX INT32_MAX
- #define INT_FAST64_MAX INT64_MAX
- #define UINT_FAST8_MAX UINT8_MAX
- #define UINT_FAST16_MAX UINT16_MAX
- #define UINT_FAST32_MAX UINT32_MAX
- #define UINT_FAST64_MAX UINT64_MAX
- #define INTPTR_MIN INT32_MIN
- #define INTPTR_MAX INT32_MAX
-
- #define UINTPTR_MAX UINT32_MAX
- #define INTMAX_MIN INT64_MIN
- #define INTMAX_MAX INT64_MAX
- #define UINTMAX_MAX UINT64_MAX
- #define PTRDIFF_MIN INT32_MIN
- #define PTRDIFF_MAX INT32_MAX
- #define SIZE_MAX UINT32_MAX
- #endif /* if C++, then __STDC_LIMIT_MACROS enables the above macros */
- #else
- #include <stdint.h>
- #endif
- #endif /* WIN32 */
- #endif /* BNCSUTIL_MUTIL_TYPES_H_INCLUDED */