Re: 64-bit syscall ABI issue

From: H. Peter Anvin
Date: Mon Jun 04 2007 - 20:06:39 EST


David Miller wrote:
> From: "Joseph S. Myers" <joseph@xxxxxxxxxxxxxxxx>
> Date: Mon, 4 Jun 2007 20:56:57 +0000 (UTC)
>
> [ added linux-arch which is a great place to discuss these
> kinds of issues. ]
>
>> What should the kernel syscall ABI be in such cases (any case where the
>> syscall implementations expect arguments narrower than registers, so
>> mainly 32-bit arguments on 64-bit platforms)? There are two obvious
>> possibilities:
>
> In general we've taken the stance that the syscall dispatch
> should create the proper calling environment for C code
> implementing the system calls, and this thus means properly
> sign and zero extending the arguments as expected by the C
> calling convention.

This is, in fact, rather fundamental (some ABIs don't require sign or
zero extension, e.g. x86-64); otherwise libc's job becomes a whole lot
harder.

-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/