summaryrefslogtreecommitdiff
path: root/firmware/include
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2006-03-03 01:12:50 +0000
committerJens Arnold <amiconn@rockbox.org>2006-03-03 01:12:50 +0000
commitfb7368e12f7e64b66185a2ca27e766e1002880c8 (patch)
tree760050b3f31e6ef2c396cf85755e34a3d9d1a660 /firmware/include
parent7a0110eedd2b7f70fe8c95806317cddfddd0f778 (diff)
downloadrockbox-fb7368e12f7e64b66185a2ca27e766e1002880c8.zip
rockbox-fb7368e12f7e64b66185a2ca27e766e1002880c8.tar.gz
rockbox-fb7368e12f7e64b66185a2ca27e766e1002880c8.tar.bz2
rockbox-fb7368e12f7e64b66185a2ca27e766e1002880c8.tar.xz
More 64bit simulator fixes: inttypes, settings block handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8888 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/include')
-rw-r--r--firmware/include/inttypes.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/firmware/include/inttypes.h b/firmware/include/inttypes.h
index bca06de..6127485 100644
--- a/firmware/include/inttypes.h
+++ b/firmware/include/inttypes.h
@@ -20,14 +20,34 @@
#ifndef __INTTYPES_H__
#define __INTTYPES_H__
-#define int8_t signed char
-#define int16_t short
-#define int32_t long
-#define int64_t long long
+#include <limits.h>
+/* 8 bit */
+#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
+#endif
+
+/* 32 bit */
+#if ULONG_MAX == 0xfffffffful
+#define int32_t long
#define uint32_t unsigned long
+#elif UINT_MAX == 0xffffffffu
+#define int32_t int
+#define uint32_t unsigned int
+#endif
+
+/* 64 bit */
+#if ULONG_MAX == 0xffffffffffffffffull
+#define int64_t long
+#define uint64_t unsigned long
+#else
+#define int64_t long long
#define uint64_t unsigned long long
+#endif
#endif /* __INTTYPES_H__ */