On Tuesday 29 March 2005 17:01, Daniel Jacobowitz wrote: > Can you explain why you want to make this change? Long long is still > correct for these types, and consistent within the kernel. The > kernel types don't need to match stdint.h.
I got an error from #ifdef OS_Linux #include <linux/version.h> #include <sys/types.h> #ifndef __u64 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,70) #include <bits/wordsize.h> #if __WORDSIZE == 64 typedef unsigned long __u64; #else typedef unsigned long long __u64; #endif #endif #endif #endif somewhere below <asm/types.h> is included which results in a type mismatch. I don't know why <asm/types.h> isn't included from <sys/types.h> but after I investigated some headers I found it confusing that c++ and c use just long (size_t and int64_t) and the kernel uses long long. Both represent 64 bit data but seems to be different types Cheers, André