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

george anzinger (george@mvista.com)
Wed, 04 Dec 2002 14:31:09 -0800


"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/