lkml.org 
[lkml]   [2011]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: RFD: x32 ABI system call numbers
On 08/26/2011 05:43 PM, Linus Torvalds wrote:
> On Fri, Aug 26, 2011 at 5:36 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
>>
>> There is *ZERO* reason to not use it. Use the standard 64-bit
>> structure layout. Why the hell would it be a new system call?
>
> Oh, I see why you do that. It's because our 64-bit 'struct stat' uses
> "unsigned long" etc.
>
> Just fix that. Make it use __u64 instead of "unsigned long", and
> everything should "just work". The 64-bit kernel will not change any
> ABI, and when you compile your new ia32 model, it will do the right
> thing too.
>
> The fact that we still use "unsigned long" in the x86 <asm/stat.h> is
> certainly a bit embarrassing, but I guess that all predates us being
> more aware of 32/64-bit issues. It really should be fixed regardless
> of any ia32 interface issues.
>

Unfortunately, there is actually a reason for the use of "unsigned long"
here -- it means that the combination of the time and the _nsec fields
matches struct timespec. struct timespec/struct timeval is one of those
things that it would be really nice if we *could* change (it's not
inherently pointer-sized, and it really should be 64 bits), but struct
timespec and struct timeval are embedded in a a number of memory
structures, some of which have pointers; and they are used by ioctls.

-hpa


\
 
 \ /
  Last update: 2011-08-27 02:57    [W:1.036 / U:0.600 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site