[lkml]   [2008]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Make u64 long long on all architectures (was: the printk problem)
    On Fri, 4 Jul 2008 20:03:51 -0600 Matthew Wilcox <> wrote:

    > [PATCH] Make u64 long long on all architectures
    > It is currently awkward to print a u64 type. Some architectures use
    > unsigned long while others use unsigned long long. Since unsigned long
    > long is 64-bit for all existing Linux architectures, change those that
    > use long to use long long. Note that this applies only within the
    > kernel. If u64 is being used in a C++ method definition, the symbol
    > mangling would change.
    > Signed-off-by: Matthew Wilcox <>
    > diff --git a/include/asm-generic/int-l64.h b/include/asm-generic/int-l64.h
    > index 2af9b75..32f07bd 100644
    > --- a/include/asm-generic/int-l64.h
    > +++ b/include/asm-generic/int-l64.h
    > @@ -23,8 +23,13 @@ typedef unsigned short __u16;
    > typedef __signed__ int __s32;
    > typedef unsigned int __u32;
    > +#ifdef __KERNEL__
    > +typedef __signed__ long long __s64;
    > +typedef unsigned long long __u64;
    > +#else
    > typedef __signed__ long __s64;
    > typedef unsigned long __u64;
    > +#endif
    > #endif /* __ASSEMBLY__ */

    This is (IMO) a desirable change and will prevent a heck of a lot of
    goofing around, and will permit a lot of prior goofing around to
    be removed.

    But I bet there are lots of instalces of printk("%l", some_u64) down in
    arch code where the type of u64 _is_ known which will now spew warnings.

    Oh well.

     \ /
      Last update: 2008-07-22 12:07    [W:0.022 / U:96.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site