Re: + preadv-pwritev-add-preadv-and-pwritev-system-calls.patch added to -mm tree

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

 



>
> I'm thinking there of the silly fadvise64_64 syscall, where ARM was forced
> into having a different argument ordering from everything else through
> zero discussion.
>
> So, what would your scripts do with the fadvise64_64 syscall on an
> architecture requiring natural alignment of the 64-bit args in 32-bit
> regs?
>

It depends on the exact rules: in most cases, it doesn't have to do
anything, because the calling convention on the user side and on the
kernel side simply cancel out.  This was lesson #1 while implementing
klibc (which does all system calls that aren't totally ad hoc via
autogenerated stubs.)  If, however, it is needed, the scripts I have can
handle arbitrary weirdness, including stuff like needing manual splitting
and even passing 64-bit arguments by reference.

The important bit here is consistent rules, but ad hoc rules that are per
system call (as opposed to a set of *per platform* rules that are adhered
to) is just a disaster -- and one from which we can never recover with any
kind of automation.  Inconsistencies here hurt everything that involves
the system call interface: all libcs, the kernel itself, strace etc.

    -hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-api" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux