openalbridge/winstdint.h
author nemo
Sun, 28 Jun 2009 14:37:26 +0000
changeset 2200 8192be6e3aef
child 2209 2573d4ff78f9
permissions -rw-r--r--
koda/Smaxx changes to openal for crossplatform building
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     1
// ISO C9x  compliant stdint.h for Microsoft Visual Studio
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     2
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     3
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     4
//  Copyright (c) 2006-2008 Alexander Chemeris
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     5
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     6
// Redistribution and use in source and binary forms, with or without
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     7
// modification, are permitted provided that the following conditions are met:
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     8
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
     9
//   1. Redistributions of source code must retain the above copyright notice,
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    10
//      this list of conditions and the following disclaimer.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    11
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    12
//   2. Redistributions in binary form must reproduce the above copyright
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    13
//      notice, this list of conditions and the following disclaimer in the
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    14
//      documentation and/or other materials provided with the distribution.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    15
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    16
//   3. The name of the author may be used to endorse or promote products
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    17
//      derived from this software without specific prior written permission.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    18
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    19
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    20
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    22
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    25
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    26
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    27
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    28
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    29
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    30
///////////////////////////////////////////////////////////////////////////////
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    31
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    32
#ifndef _MSC_VER // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    33
#error "Use this header only with Microsoft Visual C++ compilers!"
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    34
#endif // _MSC_VER ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    35
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    36
#ifndef _MSC_STDINT_H_ // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    37
#define _MSC_STDINT_H_
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    38
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    39
#if _MSC_VER > 1000
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    40
#pragma once
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    41
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    42
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    43
#include <limits.h>
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    44
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    45
// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    46
// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    47
// or compiler give many errors like this:
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    48
//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    49
#ifdef __cplusplus
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    50
extern "C" {
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    51
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    52
#  include <wchar.h>
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    53
#ifdef __cplusplus
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    54
}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    55
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    56
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    57
// Define _W64 macros to mark types changing their size, like intptr_t.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    58
#ifndef _W64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    59
#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    60
#     define _W64 __w64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    61
#  else
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    62
#     define _W64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    63
#  endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    64
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    65
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    66
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    67
// 7.18.1 Integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    68
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    69
// 7.18.1.1 Exact-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    70
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    71
// Visual Studio 6 and Embedded Visual C++ 4 doesn't
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    72
// realize that, e.g. char has the same size as __int8
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    73
// so we give up on __intX for them.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    74
#if (_MSC_VER < 1300)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    75
   typedef char              int8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    76
   typedef short             int16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    77
   typedef int               int32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    78
   typedef unsigned char     uint8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    79
   typedef unsigned short    uint16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    80
   typedef unsigned int      uint32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    81
#else
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    82
   typedef __int8            int8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    83
   typedef __int16           int16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    84
   typedef __int32           int32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    85
   typedef unsigned __int8   uint8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    86
   typedef unsigned __int16  uint16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    87
   typedef unsigned __int32  uint32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    88
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    89
typedef __int64              int64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    90
typedef unsigned __int64     uint64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    91
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    92
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    93
// 7.18.1.2 Minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    94
typedef int8_t    int_least8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    95
typedef int16_t   int_least16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    96
typedef int32_t   int_least32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    97
typedef int64_t   int_least64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    98
typedef uint8_t   uint_least8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
    99
typedef uint16_t  uint_least16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   100
typedef uint32_t  uint_least32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   101
typedef uint64_t  uint_least64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   102
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   103
// 7.18.1.3 Fastest minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   104
typedef int8_t    int_fast8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   105
typedef int16_t   int_fast16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   106
typedef int32_t   int_fast32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   107
typedef int64_t   int_fast64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   108
typedef uint8_t   uint_fast8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   109
typedef uint16_t  uint_fast16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   110
typedef uint32_t  uint_fast32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   111
typedef uint64_t  uint_fast64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   112
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   113
// 7.18.1.4 Integer types capable of holding object pointers
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   114
#ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   115
   typedef __int64           intptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   116
   typedef unsigned __int64  uintptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   117
#else // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   118
   typedef _W64 int               intptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   119
   typedef _W64 unsigned int      uintptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   120
#endif // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   121
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   122
// 7.18.1.5 Greatest-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   123
typedef int64_t   intmax_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   124
typedef uint64_t  uintmax_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   125
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   126
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   127
// 7.18.2 Limits of specified-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   128
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   129
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   130
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   131
// 7.18.2.1 Limits of exact-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   132
#define INT8_MIN     ((int8_t)_I8_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   133
#define INT8_MAX     _I8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   134
#define INT16_MIN    ((int16_t)_I16_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   135
#define INT16_MAX    _I16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   136
#define INT32_MIN    ((int32_t)_I32_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   137
#define INT32_MAX    _I32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   138
#define INT64_MIN    ((int64_t)_I64_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   139
#define INT64_MAX    _I64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   140
#define UINT8_MAX    _UI8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   141
#define UINT16_MAX   _UI16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   142
#define UINT32_MAX   _UI32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   143
#define UINT64_MAX   _UI64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   144
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   145
// 7.18.2.2 Limits of minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   146
#define INT_LEAST8_MIN    INT8_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   147
#define INT_LEAST8_MAX    INT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   148
#define INT_LEAST16_MIN   INT16_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   149
#define INT_LEAST16_MAX   INT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   150
#define INT_LEAST32_MIN   INT32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   151
#define INT_LEAST32_MAX   INT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   152
#define INT_LEAST64_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   153
#define INT_LEAST64_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   154
#define UINT_LEAST8_MAX   UINT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   155
#define UINT_LEAST16_MAX  UINT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   156
#define UINT_LEAST32_MAX  UINT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   157
#define UINT_LEAST64_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   158
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   159
// 7.18.2.3 Limits of fastest minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   160
#define INT_FAST8_MIN    INT8_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   161
#define INT_FAST8_MAX    INT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   162
#define INT_FAST16_MIN   INT16_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   163
#define INT_FAST16_MAX   INT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   164
#define INT_FAST32_MIN   INT32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   165
#define INT_FAST32_MAX   INT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   166
#define INT_FAST64_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   167
#define INT_FAST64_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   168
#define UINT_FAST8_MAX   UINT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   169
#define UINT_FAST16_MAX  UINT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   170
#define UINT_FAST32_MAX  UINT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   171
#define UINT_FAST64_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   172
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   173
// 7.18.2.4 Limits of integer types capable of holding object pointers
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   174
#ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   175
#  define INTPTR_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   176
#  define INTPTR_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   177
#  define UINTPTR_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   178
#else // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   179
#  define INTPTR_MIN   INT32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   180
#  define INTPTR_MAX   INT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   181
#  define UINTPTR_MAX  UINT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   182
#endif // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   183
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   184
// 7.18.2.5 Limits of greatest-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   185
#define INTMAX_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   186
#define INTMAX_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   187
#define UINTMAX_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   188
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   189
// 7.18.3 Limits of other integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   190
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   191
#ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   192
#  define PTRDIFF_MIN  _I64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   193
#  define PTRDIFF_MAX  _I64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   194
#else  // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   195
#  define PTRDIFF_MIN  _I32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   196
#  define PTRDIFF_MAX  _I32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   197
#endif  // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   198
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   199
#define SIG_ATOMIC_MIN  INT_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   200
#define SIG_ATOMIC_MAX  INT_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   201
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   202
#ifndef SIZE_MAX // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   203
#  ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   204
#     define SIZE_MAX  _UI64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   205
#  else // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   206
#     define SIZE_MAX  _UI32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   207
#  endif // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   208
#endif // SIZE_MAX ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   209
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   210
// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   211
#ifndef WCHAR_MIN // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   212
#  define WCHAR_MIN  0
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   213
#endif  // WCHAR_MIN ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   214
#ifndef WCHAR_MAX // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   215
#  define WCHAR_MAX  _UI16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   216
#endif  // WCHAR_MAX ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   217
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   218
#define WINT_MIN  0
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   219
#define WINT_MAX  _UI16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   220
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   221
#endif // __STDC_LIMIT_MACROS ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   222
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   223
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   224
// 7.18.4 Limits of other integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   225
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   226
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   227
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   228
// 7.18.4.1 Macros for minimum-width integer constants
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   229
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   230
#define INT8_C(val)  val##i8
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   231
#define INT16_C(val) val##i16
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   232
#define INT32_C(val) val##i32
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   233
#define INT64_C(val) val##i64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   234
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   235
#define UINT8_C(val)  val##ui8
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   236
#define UINT16_C(val) val##ui16
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   237
#define UINT32_C(val) val##ui32
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   238
#define UINT64_C(val) val##ui64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   239
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   240
// 7.18.4.2 Macros for greatest-width integer constants
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   241
#define INTMAX_C   INT64_C
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   242
#define UINTMAX_C  UINT64_C
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   243
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   244
#endif // __STDC_CONSTANT_MACROS ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   245
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   246
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   247
#endif // _MSC_STDINT_H_ ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   248
// ISO C9x  compliant stdint.h for Microsoft Visual Studio
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   249
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   250
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   251
//  Copyright (c) 2006-2008 Alexander Chemeris
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   252
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   253
// Redistribution and use in source and binary forms, with or without
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   254
// modification, are permitted provided that the following conditions are met:
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   255
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   256
//   1. Redistributions of source code must retain the above copyright notice,
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   257
//      this list of conditions and the following disclaimer.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   258
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   259
//   2. Redistributions in binary form must reproduce the above copyright
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   260
//      notice, this list of conditions and the following disclaimer in the
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   261
//      documentation and/or other materials provided with the distribution.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   262
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   263
//   3. The name of the author may be used to endorse or promote products
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   264
//      derived from this software without specific prior written permission.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   265
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   266
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   267
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   268
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   269
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   270
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   271
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   272
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   273
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   274
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   275
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   276
// 
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   277
///////////////////////////////////////////////////////////////////////////////
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   278
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   279
#ifndef _MSC_VER // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   280
#error "Use this header only with Microsoft Visual C++ compilers!"
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   281
#endif // _MSC_VER ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   282
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   283
#ifndef _MSC_STDINT_H_ // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   284
#define _MSC_STDINT_H_
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   285
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   286
#if _MSC_VER > 1000
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   287
#pragma once
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   288
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   289
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   290
#include <limits.h>
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   291
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   292
// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   293
// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   294
// or compiler give many errors like this:
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   295
//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   296
#ifdef __cplusplus
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   297
extern "C" {
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   298
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   299
#  include <wchar.h>
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   300
#ifdef __cplusplus
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   301
}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   302
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   303
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   304
// Define _W64 macros to mark types changing their size, like intptr_t.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   305
#ifndef _W64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   306
#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   307
#     define _W64 __w64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   308
#  else
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   309
#     define _W64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   310
#  endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   311
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   312
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   313
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   314
// 7.18.1 Integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   315
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   316
// 7.18.1.1 Exact-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   317
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   318
// Visual Studio 6 and Embedded Visual C++ 4 doesn't
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   319
// realize that, e.g. char has the same size as __int8
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   320
// so we give up on __intX for them.
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   321
#if (_MSC_VER < 1300)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   322
   typedef char              int8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   323
   typedef short             int16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   324
   typedef int               int32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   325
   typedef unsigned char     uint8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   326
   typedef unsigned short    uint16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   327
   typedef unsigned int      uint32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   328
#else
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   329
   typedef __int8            int8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   330
   typedef __int16           int16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   331
   typedef __int32           int32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   332
   typedef unsigned __int8   uint8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   333
   typedef unsigned __int16  uint16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   334
   typedef unsigned __int32  uint32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   335
#endif
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   336
typedef __int64              int64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   337
typedef unsigned __int64     uint64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   338
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   339
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   340
// 7.18.1.2 Minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   341
typedef int8_t    int_least8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   342
typedef int16_t   int_least16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   343
typedef int32_t   int_least32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   344
typedef int64_t   int_least64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   345
typedef uint8_t   uint_least8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   346
typedef uint16_t  uint_least16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   347
typedef uint32_t  uint_least32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   348
typedef uint64_t  uint_least64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   349
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   350
// 7.18.1.3 Fastest minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   351
typedef int8_t    int_fast8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   352
typedef int16_t   int_fast16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   353
typedef int32_t   int_fast32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   354
typedef int64_t   int_fast64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   355
typedef uint8_t   uint_fast8_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   356
typedef uint16_t  uint_fast16_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   357
typedef uint32_t  uint_fast32_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   358
typedef uint64_t  uint_fast64_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   359
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   360
// 7.18.1.4 Integer types capable of holding object pointers
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   361
#ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   362
   typedef __int64           intptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   363
   typedef unsigned __int64  uintptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   364
#else // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   365
   typedef _W64 int               intptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   366
   typedef _W64 unsigned int      uintptr_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   367
#endif // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   368
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   369
// 7.18.1.5 Greatest-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   370
typedef int64_t   intmax_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   371
typedef uint64_t  uintmax_t;
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   372
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   373
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   374
// 7.18.2 Limits of specified-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   375
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   376
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   377
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   378
// 7.18.2.1 Limits of exact-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   379
#define INT8_MIN     ((int8_t)_I8_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   380
#define INT8_MAX     _I8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   381
#define INT16_MIN    ((int16_t)_I16_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   382
#define INT16_MAX    _I16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   383
#define INT32_MIN    ((int32_t)_I32_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   384
#define INT32_MAX    _I32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   385
#define INT64_MIN    ((int64_t)_I64_MIN)
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   386
#define INT64_MAX    _I64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   387
#define UINT8_MAX    _UI8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   388
#define UINT16_MAX   _UI16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   389
#define UINT32_MAX   _UI32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   390
#define UINT64_MAX   _UI64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   391
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   392
// 7.18.2.2 Limits of minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   393
#define INT_LEAST8_MIN    INT8_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   394
#define INT_LEAST8_MAX    INT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   395
#define INT_LEAST16_MIN   INT16_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   396
#define INT_LEAST16_MAX   INT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   397
#define INT_LEAST32_MIN   INT32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   398
#define INT_LEAST32_MAX   INT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   399
#define INT_LEAST64_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   400
#define INT_LEAST64_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   401
#define UINT_LEAST8_MAX   UINT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   402
#define UINT_LEAST16_MAX  UINT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   403
#define UINT_LEAST32_MAX  UINT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   404
#define UINT_LEAST64_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   405
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   406
// 7.18.2.3 Limits of fastest minimum-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   407
#define INT_FAST8_MIN    INT8_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   408
#define INT_FAST8_MAX    INT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   409
#define INT_FAST16_MIN   INT16_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   410
#define INT_FAST16_MAX   INT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   411
#define INT_FAST32_MIN   INT32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   412
#define INT_FAST32_MAX   INT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   413
#define INT_FAST64_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   414
#define INT_FAST64_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   415
#define UINT_FAST8_MAX   UINT8_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   416
#define UINT_FAST16_MAX  UINT16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   417
#define UINT_FAST32_MAX  UINT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   418
#define UINT_FAST64_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   419
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   420
// 7.18.2.4 Limits of integer types capable of holding object pointers
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   421
#ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   422
#  define INTPTR_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   423
#  define INTPTR_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   424
#  define UINTPTR_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   425
#else // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   426
#  define INTPTR_MIN   INT32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   427
#  define INTPTR_MAX   INT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   428
#  define UINTPTR_MAX  UINT32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   429
#endif // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   430
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   431
// 7.18.2.5 Limits of greatest-width integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   432
#define INTMAX_MIN   INT64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   433
#define INTMAX_MAX   INT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   434
#define UINTMAX_MAX  UINT64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   435
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   436
// 7.18.3 Limits of other integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   437
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   438
#ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   439
#  define PTRDIFF_MIN  _I64_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   440
#  define PTRDIFF_MAX  _I64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   441
#else  // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   442
#  define PTRDIFF_MIN  _I32_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   443
#  define PTRDIFF_MAX  _I32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   444
#endif  // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   445
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   446
#define SIG_ATOMIC_MIN  INT_MIN
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   447
#define SIG_ATOMIC_MAX  INT_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   448
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   449
#ifndef SIZE_MAX // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   450
#  ifdef _WIN64 // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   451
#     define SIZE_MAX  _UI64_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   452
#  else // _WIN64 ][
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   453
#     define SIZE_MAX  _UI32_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   454
#  endif // _WIN64 ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   455
#endif // SIZE_MAX ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   456
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   457
// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   458
#ifndef WCHAR_MIN // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   459
#  define WCHAR_MIN  0
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   460
#endif  // WCHAR_MIN ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   461
#ifndef WCHAR_MAX // [
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   462
#  define WCHAR_MAX  _UI16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   463
#endif  // WCHAR_MAX ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   464
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   465
#define WINT_MIN  0
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   466
#define WINT_MAX  _UI16_MAX
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   467
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   468
#endif // __STDC_LIMIT_MACROS ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   469
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   470
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   471
// 7.18.4 Limits of other integer types
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   472
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   473
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   474
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   475
// 7.18.4.1 Macros for minimum-width integer constants
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   476
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   477
#define INT8_C(val)  val##i8
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   478
#define INT16_C(val) val##i16
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   479
#define INT32_C(val) val##i32
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   480
#define INT64_C(val) val##i64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   481
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   482
#define UINT8_C(val)  val##ui8
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   483
#define UINT16_C(val) val##ui16
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   484
#define UINT32_C(val) val##ui32
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   485
#define UINT64_C(val) val##ui64
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   486
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   487
// 7.18.4.2 Macros for greatest-width integer constants
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   488
#define INTMAX_C   INT64_C
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   489
#define UINTMAX_C  UINT64_C
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   490
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   491
#endif // __STDC_CONSTANT_MACROS ]
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   492
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   493
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents:
diff changeset
   494
#endif // _MSC_STDINT_H_ ]