Messages in this thread | | | Date | Wed, 04 Dec 2002 14:31:09 -0800 | From | george anzinger <> | Subject | Re: [PATCH] compatibility syscall layer (lets try again) |
| |
"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/
| |