]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/sigaltstack.2
xnu-4903.270.47.tar.gz
[apple/xnu.git] / bsd / man / man2 / sigaltstack.2
index dba3f28dba049e0c8bedabfcb2547605ed5e547a..de20d8faa9a565b3e107d7de6367698921ff8533 100644 (file)
 .Nm sigaltstack
 .Nd set and/or get signal stack context
 .Sh SYNOPSIS
 .Nm sigaltstack
 .Nd set and/or get signal stack context
 .Sh SYNOPSIS
-.Fd #include <sys/types.h>
 .Fd #include <signal.h>
 .Fd #include <signal.h>
-.Bd -literal
-struct sigaltstack {
-       char   *ss_sp;
-       int     ss_size;
-       int     ss_flags;
-};
-.Ed
 .Ft int
 .Ft int
-.Fn sigaltstack "const struct sigaltstack *ss" "struct sigaltstack *oss"
+.Fo sigaltstack
+.Fa "const stack_t *restrict ss"
+.Fa "stack_t *restrict oss"
+.Fc
 .Sh DESCRIPTION
 .Sh DESCRIPTION
-.Fn Sigaltstack
+.Fn sigaltstack
 allows users to define an alternate stack on which signals
 are to be processed.
 If
 allows users to define an alternate stack on which signals
 are to be processed.
 If
@@ -73,7 +68,7 @@ the system arranges a switch to the signal stack for the
 duration of the signal handler's execution. 
 .Pp
 If
 duration of the signal handler's execution. 
 .Pp
 If
-.Dv SA_DISABLE
+.Dv SS_DISABLE
 is set in
 .Fa ss_flags ,
 .Fa ss_sp
 is set in
 .Fa ss_flags ,
 .Fa ss_sp
@@ -99,7 +94,7 @@ The
 field will contain the value
 .Dv SA_ONSTACK
 if the process is currently on a signal stack and
 field will contain the value
 .Dv SA_ONSTACK
 if the process is currently on a signal stack and
-.Dv SA_DISABLE
+.Dv SS_DISABLE
 if the signal stack is currently disabled.
 .Sh NOTES
 The value
 if the signal stack is currently disabled.
 .Sh NOTES
 The value
@@ -138,10 +133,11 @@ Otherwise, a value of -1 is returned and
 .Va errno
 is set to indicate the error.
 .Sh ERRORS
 .Va errno
 is set to indicate the error.
 .Sh ERRORS
-.Fn Sigstack
+.Fn sigaltstack
 will fail and the signal stack context will remain unchanged
 if one of the following occurs.
 .Bl -tag -width [ENOMEM]
 will fail and the signal stack context will remain unchanged
 if one of the following occurs.
 .Bl -tag -width [ENOMEM]
+.\" ===========
 .It Bq Er EFAULT
 Either
 .Fa ss
 .It Bq Er EFAULT
 Either
 .Fa ss
@@ -149,15 +145,64 @@ or
 .Fa oss
 points to memory that is not a valid part of the process
 address space.
 .Fa oss
 points to memory that is not a valid part of the process
 address space.
+.\" ===========
+.It Bq Er EINVAL
+An attempt is made to disable an active stack.
+.\" ===========
 .It Bq Er EINVAL
 .It Bq Er EINVAL
-An attempt was made to disable an active stack.
+The
+.Fa ss
+argument is not a null pointer, and the ss_flags member
+pointed to by
+.Fa ss
+contains flags other than SS_DISABLE.
+.\" ===========
 .It Bq Er ENOMEM
 .It Bq Er ENOMEM
-Size of alternate stack area is less than or equal to
+The size of the alternate stack area is less than or equal to
 .Dv MINSIGSTKSZ .
 .Dv MINSIGSTKSZ .
+.\" ===========
+.It Bq Er EPERM
+An attempt was made to modify an active stack.
 .El
 .El
+.Sh LEGACY SYNOPSIS
+.Fd #include <sys/types.h>
+.Fd #include <signal.h>
+.Pp
+The include file
+.In sys/types.h
+is necessary.
+.Pp
+.Bd -literal
+struct sigaltstack {
+       char   *ss_sp;
+       int     ss_size;
+       int     ss_flags;
+};
+.Ed
+.Pp
+.Ft int
+.br
+.Fo sigaltstack
+.Fa "const struct sigaltstack *ss"
+.Fa "struct sigaltstack *oss"
+.Fc ;
+.Pp
+The variable types have changed.
+Specifically, the
+.Vt sigaltstack
+struct is no longer used.
+.Sh COMPATIBILITY
+Use of the (obsolete)
+.Vt sigaltstack
+struct will cause compiler diagnostics.
+Use
+.Vt stack_t ,
+defined in
+.In signal.h .
 .Sh SEE ALSO
 .Xr sigaction 2 ,
 .Sh SEE ALSO
 .Xr sigaction 2 ,
-.Xr setjmp 3
+.Xr setjmp 3 ,
+.Xr compat 5
 .Sh HISTORY
 The predecessor to
 .Nm sigaltstack ,
 .Sh HISTORY
 The predecessor to
 .Nm sigaltstack ,