blob: b57b15429cc244e8d921731a2c11ab1c0f0d15fc [file] [log] [blame]
<assertions>
<assertion id="1" tag="ref:XSH6:41734:41738 pt:XSI">
The sigaltstack ( ) function allows
A process is able to define and examine the state of an alternate stack for signal handlers using
sigaltstack(). Signals shall be delivered on the alternate stack if they have been explicitly declared to
execute on the alternate stack. Unless it is a null pointer, ss points to a stack_t structure that
specifies the alternate signal stack that shall take effect upon return from sigaltstack ( ).
</assertion>
<assertion id="2" tag="ref:XSH6:41738:41739 pt:XSI">
The stack is disabled and ss_sp and ss_size are ignored, if ss_flags is set to SS_DISABLE
</assertion>
<assertion id="3" tag="ref:XSH6:41740:41741 pt:XSI">
The stack shall be enabled, and the ss_sp and ss_size members specify the new address
and size of the stack, if ss_flags is not set to SS_DISABLE.
</assertion>
<assertion id="4" tag="ref:XSH6:41742:41743 pt:XSI">
The area of memory starting at ss_sp up to but not including ss_sp+ss_size is available to the
implementation for use as the stack.
</assertion>
<assertion id="5" tag="ref:XSH6:41745:41747 pt:XSI">
On successful completion, oss shall point to a stack_t structure that if it's is not a null pointer.
It specifies the alternate signal stack that was in effect prior to the call to sigaltstack ( ).
The address and size of that stack are respectively the ss_sp and ss_size members.
</assertion>
<assertion id="6" tag="ref:XSH6:41747:41749 pt:XSI">
When ss_flags is set to SS_ONSTACK, the process is currently executing on the alternate signal stack.
</assertion>
<assertion id="7" tag="ref:XSH6:41749:41750 pt:XSI">
An attempt to modify the alternate signal stack while the process is executing on it will fail.
</assertion>
<assertion id="8" tag="ref:XSH6:41752:41752 pt:XSI">
When ss_flags is set to SS_DISABLE, the alternate signal stack is currently disabled.
</assertion>
<assertion id="9" tag="ref:XSH6:41759:41760 pt:XSI">
There are no alternate signal stacks in the new process image, after a successful call to one of the
exec functions.
</assertion>
<assertion id="10" tag="ref:XSH6:41766:41767 pt:XSI">
sigaltstack ( ) shall return 0 upon successful completion,
</assertion>
<assertion id="11" tag="ref:XSH6:41770:41772 pt:XSI">
sigaltstack shall return -1 and set errno to [EINVAL] if the ss argument is not a null pointer, and
the ss_flags member pointed to by ss contains flags other than SS_DISABLE.
</assertion>
<assertion id="12" tag="ref:XSH6:41773:41773 pt:XSI">
sigaltstack shall return -1 and set errno to [ENOMEM] if The size of the alternate stack area is
less than MINSIGSTKSZ.
</assertion>
<assertion id="13" tag="ref:XSH6:41774:41774 pt:XSI">
sigaltstack shall return -1 and set errno to [EPERM] An attempt was made to modify an active stack.
</assertion>
</assertions>