[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#301631: linux-kernel-headers: type of __s64 and __u64 (from asm/types.h) on AMD64 should be long

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
  #include <bits/wordsize.h>
  #if __WORDSIZE == 64
  typedef unsigned long __u64;
  typedef unsigned long long __u64;

somewhere below <asm/types.h> is included which results in a type 

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


Reply to: