diff --git a/man2/sigaltstack.2 b/man2/sigaltstack.2 index d98aa5856..aad3f94cf 100644 --- a/man2/sigaltstack.2 +++ b/man2/sigaltstack.2 @@ -70,7 +70,7 @@ typedef struct { .RE To establish a new alternate signal stack, -\fIss.ss_flags\fP is set to zero, and \fIss.sp_sp\fP and +\fIss.ss_flags\fP is set to zero, and \fIss.ss_sp\fP and \fIss.ss_size\fP specify the starting address and size of the stack. The constant \fBSIGSTKSZ\fP is defined to be large enough @@ -78,6 +78,10 @@ to cover the usual size requirements for an alternate signal stack, and the constant \fBMINSIGSTKSZ\fP defines the minimum size required to execute a signal handler. +When a signal handler is invoked on the alternate stack, +the kernel automatically aligns the address given in \fIss.ss_sp\fP +to a suitable address bundary for the underlying hardware architecture. + To disable an existing stack, specify \fIss.ss_flags\fP as \fBSS_DISABLE\fP. In this case, the remaining fields in \fIss\fP are ignored. @@ -163,10 +167,10 @@ signal stack. .P \fBsigaltstack\fP() supersedes the older \fBsigstack\fP() call. For backwards compatibility, glibc also provides \fBsigstack\fP(). -All new applications should be written using \fBsigaltstack\fB(). +All new applications should be written using \fBsigaltstack\fP(). .SH HISTORY 4.2BSD had a \fIsigstack\fP() system call. It used a slightly -different struct, and had as major disadvantage that the caller +different struct, and had the major disadvantage that the caller had to know the direction of stack growth. .SH "CONFORMING TO" SUSv2, SVr4, POSIX 1003.1-2001.