Messages in this thread | | | Date | Wed, 06 Feb 2013 22:39:39 -0600 | From | Rob Landley <> | Subject | Re: [PATCH v2] lib: vsprintf: Add %pa format specifier for phys_addr_t types |
| |
On 01/22/2013 06:14:53 PM, Stepan Moskovchenko wrote: > Add the %pa format specifier for printing a phys_addr_t > type and its derivative types (such as resource_size_t), > since the physical address size on some platforms can vary > based on build options, regardless of the native integer > type. > > Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Ok, I know I'm late to the party, but doesn't LP64 apply here? Are we really capable of building on a target where "long" and "pointer" are different sizes? Last I checked the kernel was full of that assumption because there was an actual standard and we demanded that the compiler building us comply with it, just like MacOS X and the BSDs do:
Standard: http://www.unix.org/whitepapers/64bit.html
Rationale: http://www.unix.org/version2/whatsnew/lp64_wp.html
Insane legacy reasons Windows decided to be "special": http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx
Thus "unsigned long" should by definition be big enough. Using unsigned long long means you're doing 64 bit math on 32 bit targets for no apparent reason.
What did I miss?
Rob
| |