Subject: Re: Syscall interface (was: Re: Shared library support for ARM ELF
To: Ben Harris <bjh21@NetBSD.ORG>
From: Todd Vierling <tv@wasabisystems.com>
List: port-arm
Date: 07/28/2001 13:36:05
On Mon, 23 Jul 2001, Ben Harris wrote:

: > 2) We need to have a new mechanism for passing the syscall number.
: >
: > One solution for 2 would be to pass the syscall number in r0 (or some
: > other register -- ip might be a good choice[1]); this might even be more
: > efficient, since then the kernel doesn't have to grub around decoding the
: > instruction to see which SWI is being executed.

Well, this is the way [most] other NetBSD ports do it, and:

: We already have that, in the form of syscall() (which is conveniently SWI
: 0, and hence usable on Thumb).  The only thing you can't do with it is
: invoke syscall() recursively, and that can probably be fixed fairly
: easily.

Yah, should be fixable.

Note that if you switch to using a register to pass the syscall number, you
might as well make that the default, to simplify matters.  And, after doing
that, you could make the use of SWI [1..end] conditional on COMPAT_15, for
an additional simplification.

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  Wasabi NetBSD:  Run with it.
-- NetBSD 1.5 now available on CD-ROM  --  http://www.wasabisystems.com/