OpenBSD manual page server

Manual Page Search Parameters

SIGRETURN(2) System Calls Manual SIGRETURN(2)

sigreturnreturn from signal

int
sigreturn(struct sigcontext *scp);

The () 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.

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

sigreturn() will fail and the process context will remain unchanged if one of the following occurs.

[]
scp points to memory that is not a valid part of the process address space.
[]
The sigcontext provided is invalid or would improperly raise the privilege level of the process.

sigaction(2), setjmp(3)

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

May 9, 2016 OpenBSD-7.3