June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
01: /* The proper definitions for Linux's sigaction. 02: Copyright (C) 1993-1999, 2000, 2010 Free Software Foundation, Inc. 03: This file is part of the GNU C Library. 04: 05: The GNU C Library is free software; you can redistribute it and/or 06: modify it under the terms of the GNU Lesser General Public 07: License as published by the Free Software Foundation; either 08: version 2.1 of the License, or (at your option) any later version. 09: 10: The GNU C Library is distributed in the hope that it will be useful, 11: but WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13: Lesser General Public License for more details. 14: 15: You should have received a copy of the GNU Lesser General Public 16: License along with the GNU C Library; if not, write to the Free 17: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18: 02111-1307 USA. */ 19: 20: #ifndef _SIGNAL_H 21: # error "Never include <bits/sigaction.h> directly; use <signal.h> instead." 22: #endif 23: 24: /* Structure describing the action to be taken when a signal arrives. */ 25: struct sigaction 26: { 27: /* Signal handler. */ 28: #ifdef __USE_POSIX199309 29: union 30: { 31: /* Used if SA_SIGINFO is not set. */ 32: __sighandler_t sa_handler; 33: /* Used if SA_SIGINFO is set. */ 34: void (*sa_sigaction) (int, siginfo_t *, void *); 35: } 36: __sigaction_handler; 37: # define sa_handler __sigaction_handler.sa_handler 38: # define sa_sigaction __sigaction_handler.sa_sigaction 39: #else 40: __sighandler_t sa_handler; 41: #endif 42: 43: /* Additional set of signals to be blocked. */ 44: __sigset_t sa_mask; 45: 46: /* Special flags. */ 47: int sa_flags; 48: 49: /* Restore handler. */ 50: void (*sa_restorer) (void); 51: }; 52: 53: /* Bits in `sa_flags'. */ 54: #define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */ 55: #define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */ 56: #define SA_SIGINFO 4 /* Invoke signal-catching function with 57: three arguments instead of one. */ 58: #if defined __USE_UNIX98 || defined __USE_MISC 59: # define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ 60: #endif 61: #if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8 62: # define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ 63: # define SA_NODEFER 0x40000000 /* Don't automatically block the signal when 64: its handler is being executed. */ 65: # define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */ 66: #endif 67: #ifdef __USE_MISC 68: # define SA_INTERRUPT 0x20000000 /* Historical no-op. */ 69: 70: /* Some aliases for the SA_ constants. */ 71: # define SA_NOMASK SA_NODEFER 72: # define SA_ONESHOT SA_RESETHAND 73: # define SA_STACK SA_ONSTACK 74: #endif 75: 76: /* Values for the HOW argument to `sigprocmask'. */ 77: #define SIG_BLOCK 0 /* Block signals. */ 78: #define SIG_UNBLOCK 1 /* Unblock signals. */ 79: #define SIG_SETMASK 2 /* Set the set of blocked signals. */ 80: