diff --git a/man2/sigaction.2 b/man2/sigaction.2 index 5bee294b8..c108461cf 100644 --- a/man2/sigaction.2 +++ b/man2/sigaction.2 @@ -48,7 +48,7 @@ .\" .TH SIGACTION 2 2015-01-22 "Linux" "Linux Programmer's Manual" .SH NAME -sigaction \- examine and change a signal action +sigaction, rt_sigaction \- examine and change a signal action .SH SYNOPSIS .nf .B #include @@ -836,6 +836,36 @@ See .BR signal (7) for a list of the async-signal-safe functions that can be safely called inside from inside a signal handler. +.\" +.SS C library/kernel ABI differences +The original Linux system call was named +.BR sigaction (). +However, with the addition of real-time signals in Linux 2.2, +the fixed-size, 32-bit +.IR sigset_t +type supported by that system call was no longer fit for purpose. +Consequently, a new system call, +.BR rt_sigaction (), +was added to support an enlarged +.IR sigset_t +type. +The new system call takes a fourth argument, +.IR "size_t sigsetsize" , +which specifies the size in bytes of the signal sets in +.IR act.sa_mask +and +.IR oldact.sa_mask . +This argument is currently required to have the value +.IR sizeof(sigset_t) +(or the error +.B EINVAL +results). +The glibc +.BR sigaction () +wrapper function hides these details from us, transparently calling +.BR rt_sigaction () +when the kernel provides it. +.\" .SS Undocumented Before the introduction of .B SA_SIGINFO