On Fri, 3 Sep 1999, Philip Blundell wrote:
> >return values. Since the kernel being implimentated here is in C it seems
> >you have to have a fair bit of messy inline asm and something like a
> >no-return attribute to avoid the function call saving and restoring the
> >saved registers of the calling convention.
>
> Yes. I suspect you may end up writing some assembler to do the glue. There
> isn't any neat way to express in C what you want to do.
That was clear, I'm just trying to find the right balance. The
code should be highly readable and flexible, but I'm trying to maintain
the speed.
>
> >> Linux the compiler doesn't know anything at all about syscalls and the C
> >> library does all the necessary magic.
> >
> > for user space or inside the kernel?
>
> Sorry, I was talking about user space so I guess we were at cross purposes
> rather. The first level of system call handling in the kernel is all coded
> in assembler (which is one of the things that makes syscalls as quick as
> they are) and all the register manipulation happens there.
I think in this case the micro-kenel should aost be totally asm
but its not my choice :(
>
> > How does linux impliment its system calls?
>
> For the kernel, see arch/arm/kernel/entry-common.S. For user space, see the
> libc sources (mostly in sysdeps/unix/sysv/linux/arm/).
>
I'll check out the kernel entry points
Cheers Adam
> p.
>
>
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]