nptl: Move system to libc
[platform/upstream/glibc.git] / sysdeps / unix / sysv / linux / arm / sigaction.c
1 /* Copyright (C) 1997-2021 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library.  If not, see
16    <https://www.gnu.org/licenses/>.  */
17
18 #define SA_RESTORER     0x04000000
19
20 extern void __default_sa_restorer (void);
21 extern void __default_rt_sa_restorer (void);
22
23 #define SET_SA_RESTORER(kact, act)                              \
24  ({                                                             \
25    if ((kact)->sa_flags & SA_RESTORER)                          \
26      (kact)->sa_restorer = (act)->sa_restorer;                  \
27    else                                                         \
28      {                                                          \
29        (kact)->sa_restorer = ((kact)->sa_flags & SA_SIGINFO)    \
30                              ? __default_rt_sa_restorer         \
31                              : __default_sa_restorer;           \
32        (kact)->sa_flags |= SA_RESTORER;                         \
33      }                                                          \
34  })
35
36 #define RESET_SA_RESTORER(act, kact)                            \
37   (act)->sa_restorer = (kact)->sa_restorer;
38
39 #include <sysdeps/unix/sysv/linux/sigaction.c>