2.11BSD/man/cat2/sigreturn.0

Compare this file to the similar file:
Show the results in this format:




SIGRETURN(2)	    UNIX Programmer's Manual	     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
     _S_i_g_r_e_t_u_r_n allows users to atomically unmask, switch stacks,
     and return from a signal context.	The processes signal mask
     and stack status are restored from the context.  The system
     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 _l_o_n_g_j_m_p(3) when returning from a signal to the previ-
     ously executing program.

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

     The definition of the _s_i_g_c_o_n_t_e_x_t structure is machine depen-
     dent (the structure cited above is that for a VAX running
     4.3BSD); no program should depend on its internal structure.
     _S_e_t_j_m_p(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 _e_r_r_n_o is set to indicate the
     error.

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

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




Printed 11/26/99	  June 30, 1985                         1






SIGRETURN(2)	    UNIX Programmer's Manual	     SIGRETURN(2)



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

SEE ALSO
     sigvec(2), setjmp(3)

NOTES  (PDP-11)
     On the PDP-11 the field _s_c__a_p (argument pointer) does not
     exist and the field _s_c__f_p (frame pointer) is the PDP-11
     register _r_5.  Additionally, three new fields _s_c__r_0, _s_c__r_1
     and _s_c__o_v_n_o are present on the PDP-11 which hold register
     values r0 and r1 and the text overlay number to restore (see
     _l_d(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 */
     };





























Printed 11/26/99	  June 30, 1985                         2