Noted that ss_sp is automatically aligned by the kernel.

This commit is contained in:
Michael Kerrisk 2005-10-25 15:35:08 +00:00
parent feb41987c0
commit 75cad98162
1 changed files with 7 additions and 3 deletions

View File

@ -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.