summaryrefslogtreecommitdiff
path: root/firmware/include/inttypes.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-04-10 09:43:06 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-04-10 09:43:06 +0000
commitaf7780e0b3f27a574b007be6ac7a273d14f6b76a (patch)
treeb1698401c2c8b696b9e1effecdbf6c5705fa08c1 /firmware/include/inttypes.h
parent13c111aaece4d2bd06c41a55aee4abcb256a2774 (diff)
More complete sized integer definitions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13092 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/include/inttypes.h')
-rw-r--r--firmware/include/inttypes.h84
1 files changed, 66 insertions, 18 deletions
diff --git a/firmware/include/inttypes.h b/firmware/include/inttypes.h
index e23e1da960..3737490a81 100644
--- a/firmware/include/inttypes.h
+++ b/firmware/include/inttypes.h
@@ -17,41 +17,89 @@
*
****************************************************************************/
-#ifndef __INTTYPES_H__
-#define __INTTYPES_H__
+#ifndef __INTTYPES_H__
+#define __INTTYPES_H__
#include <limits.h>
/* 8 bit */
-#define int8_t signed char
-#define uint8_t unsigned char
+#define INT8_MIN SCHAR_MIN
+#define INT8_MAX SCHAR_MAX
+#define UINT8_MAX UCHAR_MAX
+#define int8_t signed char
+#define uint8_t unsigned char
/* 16 bit */
#if USHRT_MAX == 0xffff
-#define int16_t short
-#define uint16_t unsigned short
+
+#define INT16_MIN SHRT_MIN
+#define INT16_MAX SHRT_MAX
+#define UINT16_MAX USHRT_MAX
+#define int16_t short
+#define uint16_t unsigned short
+
#endif
/* 32 bit */
#if ULONG_MAX == 0xfffffffful
-#define int32_t long
-#define uint32_t unsigned long
-#define intptr_t long
-#define uintptr_t unsigned long
+
+#define INT32_MIN LONG_MIN
+#define INT32_MAX LONG_MAX
+#define UINT32_MAX ULONG_MAX
+#define int32_t long
+#define uint32_t unsigned long
+
+#define INTPTR_MIN LONG_MIN
+#define INTPTR_MAX LONG_MAX
+#define UINTPTR_MAX ULONG_MAX
+#define intptr_t long
+#define uintptr_t unsigned long
+
#elif UINT_MAX == 0xffffffffu
-#define int32_t int
-#define uint32_t unsigned int
+
+#define INT32_MIN INT_MIN
+#define INT32_MAX INT_MAX
+#define UINT32_MAX UINT_MAX
+#define int32_t int
+#define uint32_t unsigned int
+
#endif
/* 64 bit */
+#ifndef LLONG_MIN
+#define LLONG_MIN ((long long)9223372036854775808ull)
+#endif
+
+#ifndef LLONG_MAX
+#define LLONG_MAX 9223372036854775807ll
+#endif
+
+#ifndef ULLONG_MAX
+#define ULLONG_MAX 18446744073709551615ull
+#endif
+
#if ULONG_MAX == 0xffffffffffffffffull
-#define int64_t long
-#define uint64_t unsigned long
-#define intptr_t long
-#define uintptr_t unsigned long
+
+#define INT64_MIN LONG_MIN
+#define INT64_MAX LONG_MAX
+#define UINT64_MAX ULONG_MAX
+#define int64_t long
+#define uint64_t unsigned long
+
+#define INTPTR_MIN LONG_MIN
+#define INTPTR_MAX LONG_MAX
+#define UINTPTR_MAX ULONG_MAX
+#define intptr_t long
+#define uintptr_t unsigned long
+
#else
-#define int64_t long long
-#define uint64_t unsigned long long
+
+#define INT64_MIN LLONG_MIN
+#define INT64_MAX LLONG_MAX
+#define UINT64_MAX ULLONG_MAX
+#define int64_t long long
+#define uint64_t unsigned long long
+
#endif
#endif /* __INTTYPES_H__ */