summaryrefslogtreecommitdiff
path: root/firmware/include
diff options
context:
space:
mode:
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__ */