new types
diff --git a/include/u.h b/include/u.h
index 68a08a6..e5aeae5 100644
--- a/include/u.h
+++ b/include/u.h
@@ -17,6 +17,8 @@
 #define _LARGEFILE64_SOURCE 1
 #define _FILE_OFFSET_BITS 64
 
+#include <stdint.h>
+
 #include <unistd.h>
 #include <string.h>
 #include <stdlib.h>
@@ -107,8 +109,6 @@
 #endif
 
 typedef signed char schar;
-typedef unsigned int u32int;
-typedef int s32int;
 
 #ifdef _NEEDUCHAR
 	typedef unsigned char uchar;
@@ -124,12 +124,16 @@
 #endif
 typedef unsigned long long uvlong;
 typedef long long vlong;
-typedef uvlong u64int;
-typedef vlong s64int;
-typedef uchar u8int;
-typedef schar s8int;
-typedef ushort u16int;
-typedef short s16int;
+
+typedef uint64_t u64int;
+typedef int64_t s64int;
+typedef uint8_t u8int;
+typedef int8_t s8int;
+typedef uint16_t u16int;
+typedef int16_t s16int;
+typedef uintptr_t uintptr;
+typedef uint32_t u32int;
+typedef int32_t s32int;
 
 #undef _NEEDUCHAR
 #undef _NEEDUSHORT