Dmitry Kovalev / Mbed 2 deprecated LGstaandart

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stdint.h Source File

stdint.h

00001 /* Copyright (C) ARM Ltd., 1999 */
00002 /* All rights reserved */
00003 
00004 /*
00005  * RCS $Revision: 137748 $
00006  * Checkin $Date: 2008-09-11 17:34:24 +0100 (Thu, 11 Sep 2008) $
00007  * Revising $Author: agrant $
00008  */
00009 
00010 #ifndef __stdint_h
00011 #define __stdint_h
00012 
00013   #ifndef __STDINT_DECLS
00014   #define __STDINT_DECLS
00015 
00016     #undef __CLIBNS
00017 
00018     #ifdef __cplusplus
00019       namespace std {
00020           #define __CLIBNS std::
00021           extern "C" {
00022     #else
00023       #define __CLIBNS
00024     #endif  /* __cplusplus */
00025 
00026 
00027 /*
00028  * 'signed' is redundant below, except for 'signed char' and if
00029  * the typedef is used to declare a bitfield.
00030  * '__int64' is used instead of 'long long' so that this header
00031  * can be used in --strict mode.
00032  */
00033 
00034     /* 7.18.1.1 */
00035 
00036     /* exact-width signed integer types */
00037 typedef   signed          char int8_t;
00038 typedef   signed short     int int16_t;
00039 typedef   signed           int int32_t;
00040 typedef   signed       __int64 int64_t;
00041 
00042     /* exact-width unsigned integer types */
00043 typedef unsigned          char uint8_t;
00044 typedef unsigned short     int uint16_t;
00045 typedef unsigned           int uint32_t;
00046 typedef unsigned       __int64 uint64_t;
00047 
00048     /* 7.18.1.2 */
00049 
00050     /* smallest type of at least n bits */
00051     /* minimum-width signed integer types */
00052 typedef   signed          char int_least8_t;
00053 typedef   signed short     int int_least16_t;
00054 typedef   signed           int int_least32_t;
00055 typedef   signed       __int64 int_least64_t;
00056 
00057     /* minimum-width unsigned integer types */
00058 typedef unsigned          char uint_least8_t;
00059 typedef unsigned short     int uint_least16_t;
00060 typedef unsigned           int uint_least32_t;
00061 typedef unsigned       __int64 uint_least64_t;
00062 
00063     /* 7.18.1.3 */
00064 
00065     /* fastest minimum-width signed integer types */
00066 typedef   signed           int int_fast8_t;
00067 typedef   signed           int int_fast16_t;
00068 typedef   signed           int int_fast32_t;
00069 typedef   signed       __int64 int_fast64_t;
00070 
00071     /* fastest minimum-width unsigned integer types */
00072 typedef unsigned           int uint_fast8_t;
00073 typedef unsigned           int uint_fast16_t;
00074 typedef unsigned           int uint_fast32_t;
00075 typedef unsigned       __int64 uint_fast64_t;
00076 
00077     /* 7.18.1.4 integer types capable of holding object pointers */
00078 typedef   signed           int intptr_t;
00079 typedef unsigned           int uintptr_t;
00080 
00081     /* 7.18.1.5 greatest-width integer types */
00082 typedef   signed       __int64 intmax_t;
00083 typedef unsigned       __int64 uintmax_t;
00084 
00085 
00086 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
00087 
00088     /* 7.18.2.1 */
00089 
00090     /* minimum values of exact-width signed integer types */
00091 #define INT8_MIN                   -128
00092 #define INT16_MIN                -32768
00093 #define INT32_MIN          (~0x7fffffff)   /* -2147483648 is unsigned */
00094 #define INT64_MIN  __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned */
00095 
00096     /* maximum values of exact-width signed integer types */
00097 #define INT8_MAX                    127
00098 #define INT16_MAX                 32767
00099 #define INT32_MAX            2147483647
00100 #define INT64_MAX  __ESCAPE__(9223372036854775807ll)
00101 
00102     /* maximum values of exact-width unsigned integer types */
00103 #define UINT8_MAX                   255
00104 #define UINT16_MAX                65535
00105 #define UINT32_MAX           4294967295u
00106 #define UINT64_MAX __ESCAPE__(18446744073709551615ull)
00107 
00108     /* 7.18.2.2 */
00109 
00110     /* minimum values of minimum-width signed integer types */
00111 #define INT_LEAST8_MIN                   -128
00112 #define INT_LEAST16_MIN                -32768
00113 #define INT_LEAST32_MIN          (~0x7fffffff)
00114 #define INT_LEAST64_MIN  __ESCAPE__(~0x7fffffffffffffffll)
00115 
00116     /* maximum values of minimum-width signed integer types */
00117 #define INT_LEAST8_MAX                    127
00118 #define INT_LEAST16_MAX                 32767
00119 #define INT_LEAST32_MAX            2147483647
00120 #define INT_LEAST64_MAX  __ESCAPE__(9223372036854775807ll)
00121 
00122     /* maximum values of minimum-width unsigned integer types */
00123 #define UINT_LEAST8_MAX                   255
00124 #define UINT_LEAST16_MAX                65535
00125 #define UINT_LEAST32_MAX           4294967295u
00126 #define UINT_LEAST64_MAX __ESCAPE__(18446744073709551615ull)
00127 
00128     /* 7.18.2.3 */
00129 
00130     /* minimum values of fastest minimum-width signed integer types */
00131 #define INT_FAST8_MIN           (~0x7fffffff)
00132 #define INT_FAST16_MIN          (~0x7fffffff)
00133 #define INT_FAST32_MIN          (~0x7fffffff)
00134 #define INT_FAST64_MIN  __ESCAPE__(~0x7fffffffffffffffll)
00135 
00136     /* maximum values of fastest minimum-width signed integer types */
00137 #define INT_FAST8_MAX             2147483647
00138 #define INT_FAST16_MAX            2147483647
00139 #define INT_FAST32_MAX            2147483647
00140 #define INT_FAST64_MAX  __ESCAPE__(9223372036854775807ll)
00141 
00142     /* maximum values of fastest minimum-width unsigned integer types */
00143 #define UINT_FAST8_MAX            4294967295u
00144 #define UINT_FAST16_MAX           4294967295u
00145 #define UINT_FAST32_MAX           4294967295u
00146 #define UINT_FAST64_MAX __ESCAPE__(18446744073709551615ull)
00147 
00148     /* 7.18.2.4 */
00149 
00150     /* minimum value of pointer-holding signed integer type */
00151 #define INTPTR_MIN (~0x7fffffff)
00152 
00153     /* maximum value of pointer-holding signed integer type */
00154 #define INTPTR_MAX   2147483647
00155 
00156     /* maximum value of pointer-holding unsigned integer type */
00157 #define UINTPTR_MAX  4294967295u
00158 
00159     /* 7.18.2.5 */
00160 
00161     /* minimum value of greatest-width signed integer type */
00162 #define INTMAX_MIN  __ESCAPE__(~0x7fffffffffffffffll)
00163 
00164     /* maximum value of greatest-width signed integer type */
00165 #define INTMAX_MAX  __ESCAPE__(9223372036854775807ll)
00166 
00167     /* maximum value of greatest-width unsigned integer type */
00168 #define UINTMAX_MAX __ESCAPE__(18446744073709551615ull)
00169 
00170     /* 7.18.3 */
00171 
00172     /* limits of ptrdiff_t */
00173 #define PTRDIFF_MIN (~0x7fffffff)
00174 #define PTRDIFF_MAX   2147483647
00175 
00176     /* limits of sig_atomic_t */
00177 #define SIG_ATOMIC_MIN (~0x7fffffff)
00178 #define SIG_ATOMIC_MAX   2147483647
00179 
00180     /* limit of size_t */
00181 #define SIZE_MAX 4294967295u
00182 
00183     /* limits of wchar_t */
00184     /* NB we have to undef and redef because they're defined in both
00185      * stdint.h and wchar.h */
00186 #undef WCHAR_MIN
00187 #undef WCHAR_MAX
00188 
00189 #if defined(__WCHAR32)
00190   #define WCHAR_MIN   0
00191   #define WCHAR_MAX   0xffffffffU
00192 #else
00193   #define WCHAR_MIN   0
00194   #define WCHAR_MAX   65535
00195 #endif
00196 
00197     /* limits of wint_t */
00198 #define WINT_MIN (~0x7fffffff)
00199 #define WINT_MAX 2147483647
00200 
00201 #endif /* __STDC_LIMIT_MACROS */
00202 
00203 #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
00204 
00205     /* 7.18.4.1 macros for minimum-width integer constants */
00206 #define INT8_C(x)   (x)
00207 #define INT16_C(x)  (x)
00208 #define INT32_C(x)  (x)
00209 #define INT64_C(x)  __ESCAPE__(x ## ll)
00210 
00211 #define UINT8_C(x)  (x ## u)
00212 #define UINT16_C(x) (x ## u)
00213 #define UINT32_C(x) (x ## u)
00214 #define UINT64_C(x) __ESCAPE__(x ## ull)
00215 
00216     /* 7.18.4.2 macros for greatest-width integer constants */
00217 #define INTMAX_C(x)  __ESCAPE__(x ## ll)
00218 #define UINTMAX_C(x) __ESCAPE__(x ## ull)
00219 
00220 #endif /* __STDC_CONSTANT_MACROS */
00221 
00222     #ifdef __cplusplus
00223          }  /* extern "C" */
00224       }  /* namespace std */
00225     #endif /* __cplusplus */
00226   #endif /* __STDINT_DECLS */
00227 
00228   #ifdef __cplusplus
00229     #ifndef __STDINT_NO_EXPORTS
00230       using ::std::int8_t;
00231       using ::std::int16_t;
00232       using ::std::int32_t;
00233       using ::std::int64_t;
00234       using ::std::uint8_t;
00235       using ::std::uint16_t;
00236       using ::std::uint32_t;
00237       using ::std::uint64_t;
00238       using ::std::int_least8_t;
00239       using ::std::int_least16_t;
00240       using ::std::int_least32_t;
00241       using ::std::int_least64_t;
00242       using ::std::uint_least8_t;
00243       using ::std::uint_least16_t;
00244       using ::std::uint_least32_t;
00245       using ::std::uint_least64_t;
00246       using ::std::int_fast8_t;
00247       using ::std::int_fast16_t;
00248       using ::std::int_fast32_t;
00249       using ::std::int_fast64_t;
00250       using ::std::uint_fast8_t;
00251       using ::std::uint_fast16_t;
00252       using ::std::uint_fast32_t;
00253       using ::std::uint_fast64_t;
00254       using ::std::intptr_t;
00255       using ::std::uintptr_t;
00256       using ::std::intmax_t;
00257       using ::std::uintmax_t;
00258     #endif 
00259   #endif /* __cplusplus */
00260 
00261 #endif /* __stdint_h */
00262 
00263 /* end of stdint.h */
00264 
00265 
00266