linux-mips
[Top] [All Lists]

Re: 64-bit syscall ABI issue

To: David Miller <davem@davemloft.net>
Subject: Re: 64-bit syscall ABI issue
From: "H. Peter Anvin" <hpa@zytor.com>
Date: Mon, 04 Jun 2007 17:04:12 -0700
Cc: joseph@codesourcery.com, linux-kernel@vger.kernel.org, linux-mips@linux-mips.org, linux-arch@vger.kernel.org
In-reply-to: <20070604.142557.68139332.davem@davemloft.net>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <Pine.LNX.4.64.0706042051280.16431@digraph.polyomino.org.uk> <20070604.142557.68139332.davem@davemloft.net>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.0 (X11/20070419)
David Miller wrote:
> From: "Joseph S. Myers" <joseph@codesourcery.com>
> 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

<Prev in Thread] Current Thread [Next in Thread>