Re: [PATCH] compatibility syscall layer (lets try again)

From: george anzinger (george@mvista.com)
Date: Wed Dec 04 2002 - 17:31:09 EST


"David S. Miller" wrote:
>
> From: Daniel Jacobowitz <dan@debian.org>
> Date: Wed, 4 Dec 2002 15:56:09 -0500
>
> Is the necessary information recoverable in
> Alpha et al.?
>
> No, and Sparc is the same. It's kept in local registers
> in the assembler of the trap return path.

One solution would then appear to be that we need arch
wrappers for nano_sleep and clock_nanosleep (when and if).

On the PARISC I did this (a long time ago in a far away
place) by unwinding the stack to pick up the registers that
were saved along the way. Is this at all feasible?

It might help to understand just what registers do_signal
needs. It doesn't need them all, I suspect.

Yet another idea, do_signal does not actually call the user
handler (the only case where it needs the regs) but sets up
the stack to make it happen when the system call returns.
If there were a function that could be called to find out if
a signal was going to be delivered, the right thing could be
done in nano_sleep() and the actual do_signal call could
come from the system call return path as it does now.

Yes, I like that...

-- 
George Anzinger   george@mvista.com
High-res-timers: 
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:20 EST