On Wed, Dec 04, 2002 at 12:07:11PM -0800, Linus Torvalds wrote:
>
> On Wed, 4 Dec 2002, george anzinger wrote:
> >
> > As a suggestion for a solution for this, is it true that
> > regs, on a system call, will ALWAYS be at the end of the
> > stack?
>
> No. Some architectures do not save enough state on the stack by default,
> and need to do more to use do_signal(). Look at alpha, for example - the
> default kernel stack doesn't contain all tbe registers needed, and
> the alpha do_signal() calling convention is different.
>
> If you want to handle do_signal(), then you need to do _all_ of this in
> architecture-specific files. You simply cannot do what you want to do in a
> generic way.
I think you should be able to call do_signal or a wrapper in some
platform-independent way. Is the necessary information recoverable in
Alpha et al.? What do you think of adding a standard wrapper function
so that system calls can process a signal if necessary?
Not only did George need this for POSIX conformance, I've seen a lot of
complaints about GDB interrupting sys_nanosleep even on cancelled
signals.
-- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer - 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