9ns: Support SYS_access (XCC)
[akaros.git] / kern / include / stdint.h
index 44fd3db..0c5b4c9 100644 (file)
@@ -1,5 +1,34 @@
-/* GHETTO: To our grandchildren, we are sorry for this
- * We do this since newlib has it's own stdint that conflicts with the kernel
- * and roslib's types. */
+#pragma once
 
 #include <arch/types.h>
+
+/* Limits of integral types.  */
+
+/* Minimum of signed integral types.  */
+# define INT8_MIN              (-128)
+# define INT16_MIN             (-32767-1)
+# define INT32_MIN             (-2147483647-1)
+# define INT64_MIN             (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types.  */
+# define INT8_MAX              (127)
+# define INT16_MAX             (32767)
+# define INT32_MAX             (2147483647)
+# define INT64_MAX             (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types.  */
+# define UINT8_MAX             (255)
+# define UINT16_MAX            (65535)
+# define UINT32_MAX            (4294967295U)
+# define UINT64_MAX            (__UINT64_C(18446744073709551615))
+
+#if NUM_ADDR_BITS == 64
+# define SIZE_MAX UINT64_MAX
+# define LONG_MAX INT64_MAX
+# define ULONG_MAX UINT64_MAX
+#elif NUM_ADDR_BITS == 32
+# define SIZE_MAX UINT32_MAX
+# define LONG_MAX INT32_MAX
+# define ULONG_MAX UINT32_MAX
+#else
+# error "NUM_ADDR_BITS is not set"
+#endif