Annotation of src/include/signal.h, Revision 1.1.1.1
1.1 deraadt 1: /* $NetBSD: signal.h,v 1.7 1995/05/28 03:10:06 jtc Exp $ */
2:
3: /*-
4: * Copyright (c) 1991, 1993
5: * The Regents of the University of California. All rights reserved.
6: *
7: * Redistribution and use in source and binary forms, with or without
8: * modification, are permitted provided that the following conditions
9: * are met:
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: * 2. Redistributions in binary form must reproduce the above copyright
13: * notice, this list of conditions and the following disclaimer in the
14: * documentation and/or other materials provided with the distribution.
15: * 3. All advertising materials mentioning features or use of this software
16: * must display the following acknowledgement:
17: * This product includes software developed by the University of
18: * California, Berkeley and its contributors.
19: * 4. Neither the name of the University nor the names of its contributors
20: * may be used to endorse or promote products derived from this software
21: * without specific prior written permission.
22: *
23: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33: * SUCH DAMAGE.
34: *
35: * @(#)signal.h 8.3 (Berkeley) 3/30/94
36: */
37:
38: #ifndef _USER_SIGNAL_H
39: #define _USER_SIGNAL_H
40:
41: #include <sys/cdefs.h>
42: #include <sys/signal.h>
43:
44: #if !defined(_ANSI_SOURCE)
45: #include <sys/types.h>
46: #endif
47:
48: #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
49: extern __const char *__const sys_signame[_NSIG];
50: extern __const char *__const sys_siglist[_NSIG];
51: #endif
52:
53: __BEGIN_DECLS
54: int raise __P((int));
55: #ifndef _ANSI_SOURCE
56: int kill __P((pid_t, int));
57: int sigaction __P((int, const struct sigaction *, struct sigaction *));
58: int sigaddset __P((sigset_t *, int));
59: int sigdelset __P((sigset_t *, int));
60: int sigemptyset __P((sigset_t *));
61: int sigfillset __P((sigset_t *));
62: int sigismember __P((const sigset_t *, int));
63: int sigpending __P((sigset_t *));
64: int sigprocmask __P((int, const sigset_t *, sigset_t *));
65: int sigsuspend __P((const sigset_t *));
66:
67: #if defined(__GNUC__) && defined(__STDC__)
68: extern __inline int sigaddset(sigset_t *set, int signo) {
69: extern int errno;
70:
71: if (signo <= 0 || signo >= _NSIG) {
72: errno = 22; /* EINVAL */
73: return -1;
74: }
75: *set |= (1 << ((signo)-1)); /* sigmask(signo) */
76: return (0);
77: }
78:
79: extern __inline int sigdelset(sigset_t *set, int signo) {
80: extern int errno;
81:
82: if (signo <= 0 || signo >= _NSIG) {
83: errno = 22; /* EINVAL */
84: return -1;
85: }
86: *set &= ~(1 << ((signo)-1)); /* sigmask(signo) */
87: return (0);
88: }
89:
90: extern __inline int sigismember(const sigset_t *set, int signo) {
91: extern int errno;
92:
93: if (signo <= 0 || signo >= _NSIG) {
94: errno = 22; /* EINVAL */
95: return -1;
96: }
97: return ((*set & (1 << ((signo)-1))) != 0);
98: }
99: #endif
100:
101: /* List definitions after function declarations, or Reiser cpp gets upset. */
102: #define sigemptyset(set) (*(set) = 0, 0)
103: #define sigfillset(set) (*(set) = ~(sigset_t)0, 0)
104:
105: #ifndef _POSIX_SOURCE
106: int killpg __P((pid_t, int));
107: int sigblock __P((int));
108: int siginterrupt __P((int, int));
109: int sigpause __P((int));
110: int sigreturn __P((struct sigcontext *));
111: int sigsetmask __P((int));
112: int sigstack __P((const struct sigstack *, struct sigstack *));
113: int sigvec __P((int, struct sigvec *, struct sigvec *));
114: void psignal __P((unsigned int, const char *));
115: #endif /* !_POSIX_SOURCE */
116: #endif /* !_ANSI_SOURCE */
117: __END_DECLS
118:
119: #endif /* !_USER_SIGNAL_H */