OpenCoverage

sig-handler.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/sig-handler.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Convenience declarations when working with <signal.h>.-
2-
3 Copyright (C) 2008-2018 Free Software Foundation, Inc.-
4-
5 This program is free software: you can redistribute it and/or modify-
6 it under the terms of the GNU General Public License as published by-
7 the Free Software Foundation; either version 3 of the License, or-
8 (at your option) any later version.-
9-
10 This program 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-
13 GNU General Public License for more details.-
14-
15 You should have received a copy of the GNU General Public License-
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
17-
18#ifndef _GL_SIG_HANDLER_H-
19#define _GL_SIG_HANDLER_H-
20-
21#include <signal.h>-
22-
23#ifndef _GL_INLINE_HEADER_BEGIN-
24 #error "Please include config.h first."-
25#endif-
26_GL_INLINE_HEADER_BEGIN-
27#ifndef SIG_HANDLER_INLINE-
28# define SIG_HANDLER_INLINE _GL_INLINE-
29#endif-
30-
31/* Convenience type when working with signal handlers. */-
32typedef void (*sa_handler_t) (int);-
33-
34/* Return the handler of a signal, as a sa_handler_t value regardless-
35 of its true type. The resulting function can be compared to-
36 special values like SIG_IGN but it is not portable to call it. */-
37SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE-
38get_handler (struct sigaction const *a)-
39{-
40#ifdef SA_SIGINFO-
41 /* POSIX says that special values like SIG_IGN can only occur when-
42 action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4,-
43 for example, sa_sigaction and sa_handler are aliases and a signal-
44 is ignored if sa_sigaction (after casting) equals SIG_IGN. So-
45 use (and cast) sa_sigaction in that case. */-
46 if (a->sa_flags & SA_SIGINFO)
a->sa_flags & 4Description
TRUEnever evaluated
FALSEnever evaluated
0
47 return (sa_handler_t) a->sa_sigaction;
never executed: return (sa_handler_t) a-> __sigaction_handler.sa_sigaction ;
0
48#endif-
49 return a->sa_handler;
never executed: return a-> __sigaction_handler.sa_handler ;
0
50}-
51-
52_GL_INLINE_HEADER_END-
53-
54#endif /* _GL_SIG_HANDLER_H */-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2