Re: sigreturn on sparc64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "H. Peter Anvin" <hpa@xxxxxxxxx>
Subject: Re: sigreturn on sparc64
Date: Wed, 24 May 2006 14:23:58 -0700

> David Miller wrote:
> > 
> > GLIBC is the source of all knowledge :-)
> > 
> > libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
> > 
> > In there you'll see that you have to set the sa_restorer
> > to NULL and pass in the "stub" address minus 8, as the
> > 4th argument to rt_sigation system call.
> > 
> 
> Minus 8 :)  Talk about weirdness... :-/

The stub is "returned to" directly from the signal handler itself
using the "retl" instruction, which jumps to the value of "register
%i7 plus 8".  We stick the passed in stub address directly into the
%i7 register of the signal handler frame, that's why you need to
subtract 8 for the system call argument.
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux