>>>>> On Sun, 5 Mar 2006 10:13:56 +1100, Paul Mackerras <[email protected]> said:
paul> I think the thing that makes most sense is:
paul> #define jiffies ((unsigned long) jiffies_64)
paul> and fix the few drivers that use `jiffies' as a local variable.
paul> No-one should be trying to write to jiffies, and the compiler
paul> will do the right thing for reads of jiffies on 32-bit platforms
paul> (it does on ppc32 at least).
I think making jiffies a non l-value is good, but this drops volatile
attribute from jiffies (since jiffies_64 is not volatile). It might
break some codes which do polling on jiffies.
Something like this would be better?
#if defined(__BIG_ENDIAN) && BITS_PER_LONG == 32
#define jiffies (*((const volatile unsigned long *)&jiffies_64 + 1))
#else
#define jiffies (*(const volatile unsigned long *)&jiffies_64)
#endif
And if we do not want to depend on -fno-strict-aliasing, the union
would be The Only Neat Thing to Do.
---
Atsushi Nemoto
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]