Re: N32 fallocate syscall

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

 



Joseph S. Myers wrote:
The N32 syscall table uses sys_fallocate instead of sys32_fallocate. However, glibc expects to be using the syscall version with 32-bit arguments on N32, which should work with sys32_fallocate but not sys_fallocate.

What should the N32 interface for this syscall be? My inclination is that glibc is right not to do anything special and different from other 32-bit ABIs here, and so sys32_fallocate should be used.


The prototype for that would be something like:

sys_fallocate(int32_t, int32_t, int64_t, int64_t);

The N32 and N64 ABIs treat this identically, the parameters are passed
in a0, a1, a2, and a3.  As you noted, the current (2.6.28-rc8) kernel
sources follow the ABI for N32 and N64.  I think the kernel is
correct.

If glibc is not using the ABI calling convention for both N32 and N64 (I
haven't checked), it should probably be fixed.

(glibc is also expecting the 32-bit version for N64, but that's a clear bug in glibc that I'll be fixing.)


David Daney


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux