Unix/Linux Go Back    


BSD 2.11 - man page for sigreturn (bsd section 2)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


SIGRETURN(2)									     SIGRETURN(2)

NAME
       sigreturn - return from signal

SYNOPSIS
       #include <signal.h>

       struct	 sigcontext {
	    int  sc_onstack;
	    long sc_mask;
	    int  sc_sp;
	    int  sc_fp;
	    int  sc_ap;
	    int  sc_pc;
	    int  sc_ps;
       };

       sigreturn(scp);
       struct sigcontext *scp;

DESCRIPTION
       Sigreturn  allows users to atomically unmask, switch stacks, and return from a signal con-
       text.  The processes signal mask and stack status are restored from the context.  The sys-
       tem  call  does	not return; the users stack pointer, frame pointer, argument pointer, and
       processor status longword are restored from the context.  Execution resumes at the  speci-
       fied  pc.   This system call is used by the trampoline code, and longjmp(3) when returning
       from a signal to the previously executing program.

NOTES
       This system call is not available in 4.2BSD, hence it should not be used if backward  com-
       patibility is needed.

       The definition of the sigcontext structure is machine dependent (the structure cited above
       is that for a VAX running 4.3BSD); no program should depend  on	its  internal  structure.
       Setjmp(3) may be used to build sigcontext structures in a machine independent manner.

RETURN VALUE
       If  successful, the system call does not return.  Otherwise, a value of -1 is returned and
       errno is set to indicate the error.

ERRORS
       Sigreturn will fail and the process context will remain unchanged if one of the	following
       occurs.

       [EFAULT]       Scp points to memory that is not a valid part of the process address space.

       [EINVAL]       The process status longword is invalid or would improperly raise the privi-
		      lege level of the process.

SEE ALSO
       sigvec(2), setjmp(3)

NOTES  (PDP-11)
       On the PDP-11 the field sc_ap (argument pointer) does not exist and the field sc_fp (frame
       pointer)  is  the  PDP-11  register  r5.   Additionally, three new fields sc_r0, sc_r1 and
       sc_ovno are present on the PDP-11 which hold register values r0 and r1 and the text  over-
       lay number to restore (see ld(1)).

       struct  sigcontext {
	       int   sc_onstack; /* sigstack state to restore */
	       long  sc_mask;	 /* signal mask to restore */
	       int   sc_sp;	 /* sp to restore */
	       int   sc_fp;	 /* fp to restore */
	       int   sc_r1;	 /* r1 to restore */
	       int   sc_r0;	 /* r0 to restore */
	       int   sc_pc;	 /* pc to restore */
	       int   sc_ps;	 /* psl to restore */
	       int   sc_ovno	 /* overlay to restore */
       };

4.3 Berkeley Distribution		  June 30, 1985 			     SIGRETURN(2)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 08:47 PM.