1 <assertions> 2 <assertion id="1" tag="ref:XSH6:41734:41738 pt:XSI"> 3 The sigaltstack ( ) function allows 4 A process is able to define and examine the state of an alternate stack for signal handlers using 5 sigaltstack(). Signals shall be delivered on the alternate stack if they have been explicitly declared to 6 execute on the alternate stack. Unless it is a null pointer, ss points to a stack_t structure that 7 specifies the alternate signal stack that shall take effect upon return from sigaltstack ( ). 8 </assertion> 9 <assertion id="2" tag="ref:XSH6:41738:41739 pt:XSI"> 10 The stack is disabled and ss_sp and ss_size are ignored, if ss_flags is set to SS_DISABLE 11 </assertion> 12 <assertion id="3" tag="ref:XSH6:41740:41741 pt:XSI"> 13 The stack shall be enabled, and the ss_sp and ss_size members specify the new address 14 and size of the stack, if ss_flags is not set to SS_DISABLE. 15 </assertion> 16 <assertion id="4" tag="ref:XSH6:41742:41743 pt:XSI"> 17 The area of memory starting at ss_sp up to but not including ss_sp+ss_size is available to the 18 implementation for use as the stack. 19 </assertion> 20 <assertion id="5" tag="ref:XSH6:41745:41747 pt:XSI"> 21 On successful completion, oss shall point to a stack_t structure that if it's is not a null pointer. 22 It specifies the alternate signal stack that was in effect prior to the call to sigaltstack ( ). 23 The address and size of that stack are respectively the ss_sp and ss_size members. 24 </assertion> 25 <assertion id="6" tag="ref:XSH6:41747:41749 pt:XSI"> 26 When ss_flags is set to SS_ONSTACK, the process is currently executing on the alternate signal stack. 27 </assertion> 28 <assertion id="7" tag="ref:XSH6:41749:41750 pt:XSI"> 29 An attempt to modify the alternate signal stack while the process is executing on it will fail. 30 </assertion> 31 <assertion id="8" tag="ref:XSH6:41752:41752 pt:XSI"> 32 When ss_flags is set to SS_DISABLE, the alternate signal stack is currently disabled. 33 </assertion> 34 <assertion id="9" tag="ref:XSH6:41759:41760 pt:XSI"> 35 There are no alternate signal stacks in the new process image, after a successful call to one of the 36 exec functions. 37 </assertion> 38 <assertion id="10" tag="ref:XSH6:41766:41767 pt:XSI"> 39 sigaltstack ( ) shall return 0 upon successful completion, 40 </assertion> 41 <assertion id="11" tag="ref:XSH6:41770:41772 pt:XSI"> 42 sigaltstack shall return -1 and set errno to [EINVAL] if the ss argument is not a null pointer, and 43 the ss_flags member pointed to by ss contains flags other than SS_DISABLE. 44 </assertion> 45 <assertion id="12" tag="ref:XSH6:41773:41773 pt:XSI"> 46 sigaltstack shall return -1 and set errno to [ENOMEM] if The size of the alternate stack area is 47 less than MINSIGSTKSZ. 48 </assertion> 49 <assertion id="13" tag="ref:XSH6:41774:41774 pt:XSI"> 50 sigaltstack shall return -1 and set errno to [EPERM] An attempt was made to modify an active stack. 51 </assertion> 52 </assertions> 53 54 55