SIGRETURN(2)

NAME
sigreturn - return from signal

SYNOPSIS
int
sigreturn(struct sigcontext *scp);

DESCRIPTION
The sigreturn() syscall is used by the signal handling facility to atomically switch stacks, restore registers and the thread's signal mask, and return from a signal context to resume the processing that was interrupted by the signal.

Note that sigcontext contains machine dependent information.

Direct use of sigreturn is no longer supported and it is not provided as a function. As used in the signal trampoline provided by the system, if sigreturn fails and returns then the process is terminated.

RETURN VALUES
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 sigcontext provided is invalid or would improperly raise the privilege level of the process.

SEE ALSO
sigaction(2), setjmp(3)

HISTORY
The sigreturn() function appeared in 4.3BSD. The function was removed from libc in OpenBSD 6.0.