Index: uspace/lib/c/include/inttypes.h
===================================================================
--- uspace/lib/c/include/inttypes.h	(revision 81685dd947bc65a804dc5adf2cf68f40b4aaa7fc)
+++ uspace/lib/c/include/inttypes.h	(revision b639d569d5f3a960f411e38bd76a17acdb0cda5f)
@@ -36,5 +36,8 @@
 #define LIBC_INTTYPES_H_
 
-#include <libarch/inttypes.h>
+// TODO: Remove
+#include <_bits/all.h>
+
+#include <_bits/inttypes.h>
 
 #endif
Index: uspace/lib/c/include/limits.h
===================================================================
--- uspace/lib/c/include/limits.h	(revision 81685dd947bc65a804dc5adf2cf68f40b4aaa7fc)
+++ uspace/lib/c/include/limits.h	(revision b639d569d5f3a960f411e38bd76a17acdb0cda5f)
@@ -36,7 +36,5 @@
 #define LIBC_LIMITS_H_
 
-/* XXX Make this more accurate */
-#include <stdint.h>
-#include <libarch/stdint.h>
+#include <_bits/limits.h>
 
 #endif
Index: uspace/lib/c/include/stddef.h
===================================================================
--- uspace/lib/c/include/stddef.h	(revision 81685dd947bc65a804dc5adf2cf68f40b4aaa7fc)
+++ uspace/lib/c/include/stddef.h	(revision b639d569d5f3a960f411e38bd76a17acdb0cda5f)
@@ -36,5 +36,10 @@
 #define LIBC_STDDEF_H_
 
-#include <libarch/stddef.h>
+// TODO: Remove
+#include <_bits/all.h>
+
+#include <_bits/size_t.h>
+#include <_bits/ptrdiff_t.h>
+#include <_bits/wchar_t.h>
 
 #ifndef NULL
Index: uspace/lib/c/include/stdint.h
===================================================================
--- uspace/lib/c/include/stdint.h	(revision 81685dd947bc65a804dc5adf2cf68f40b4aaa7fc)
+++ uspace/lib/c/include/stdint.h	(revision b639d569d5f3a960f411e38bd76a17acdb0cda5f)
@@ -36,29 +36,8 @@
 #define LIBC_STDINT_H_
 
-#define INT8_MIN  INT8_C(0x80)
-#define INT8_MAX  INT8_C(0x7F)
+// TODO: Remove
+#include <_bits/all.h>
 
-#define UINT8_MIN  UINT8_C(0)
-#define UINT8_MAX  UINT8_C(0xFF)
-
-#define INT16_MIN  INT16_C(0x8000)
-#define INT16_MAX  INT16_C(0x7FFF)
-
-#define UINT16_MIN  UINT16_C(0)
-#define UINT16_MAX  UINT16_C(0xFFFF)
-
-#define INT32_MIN  INT32_C(0x80000000)
-#define INT32_MAX  INT32_C(0x7FFFFFFF)
-
-#define UINT32_MIN  UINT32_C(0)
-#define UINT32_MAX  UINT32_C(0xFFFFFFFF)
-
-#define INT64_MIN  INT64_C(0x8000000000000000)
-#define INT64_MAX  INT64_C(0x7FFFFFFFFFFFFFFF)
-
-#define UINT64_MIN  UINT64_C(0)
-#define UINT64_MAX  UINT64_C(0xFFFFFFFFFFFFFFFF)
-
-#include <libarch/stdint.h>
+#include <_bits/stdint.h>
 
 #endif
Index: uspace/lib/c/include/types/common.h
===================================================================
--- uspace/lib/c/include/types/common.h	(revision 81685dd947bc65a804dc5adf2cf68f40b4aaa7fc)
+++ uspace/lib/c/include/types/common.h	(revision b639d569d5f3a960f411e38bd76a17acdb0cda5f)
@@ -36,5 +36,13 @@
 #define LIBC_TYPES_COMMON_H_
 
-#include <libarch/types.h>
+#if __SIZEOF_POINTER__ == 4
+#define __32_BITS__
+#elif __SIZEOF_POINTER__ == 8
+#define __64_BITS__
+#else
+#error __SIZEOF_POINTER__ is not defined.
+#endif
+
+#include <_bits/all.h>
 
 #endif
