Annotation of src/include/signal.h, Revision 1.5
1.5 ! millert 1: /* $OpenBSD: signal.h,v 1.4 1998/11/20 11:18:26 d Exp $ */
1.2 niklas 2: /* $NetBSD: signal.h,v 1.8 1996/02/29 00:04:57 jtc Exp $ */
1.1 deraadt 3:
4: /*-
5: * Copyright (c) 1991, 1993
6: * The Regents of the University of California. All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. All advertising materials mentioning features or use of this software
17: * must display the following acknowledgement:
18: * This product includes software developed by the University of
19: * California, Berkeley and its contributors.
20: * 4. Neither the name of the University nor the names of its contributors
21: * may be used to endorse or promote products derived from this software
22: * without specific prior written permission.
23: *
24: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34: * SUCH DAMAGE.
35: *
36: * @(#)signal.h 8.3 (Berkeley) 3/30/94
37: */
38:
39: #ifndef _USER_SIGNAL_H
40: #define _USER_SIGNAL_H
41:
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
1.5 ! millert 54: int raise(int);
1.1 deraadt 55: #ifndef _ANSI_SOURCE
1.5 ! millert 56: int kill(pid_t, int);
! 57: int sigaction(int, const struct sigaction *, struct sigaction *);
! 58: int sigaddset(sigset_t *, int);
! 59: int sigdelset(sigset_t *, int);
! 60: int sigemptyset(sigset_t *);
! 61: int sigfillset(sigset_t *);
! 62: int sigismember(const sigset_t *, int);
! 63: int sigpending(sigset_t *);
! 64: int sigprocmask(int, const sigset_t *, sigset_t *);
! 65: int sigsuspend(const sigset_t *);
1.1 deraadt 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
1.5 ! millert 106: int killpg(pid_t, int);
! 107: int sigblock(int);
! 108: int siginterrupt(int, int);
! 109: int sigpause(int);
! 110: int sigreturn(struct sigcontext *);
! 111: int sigsetmask(int);
! 112: int sigstack(const struct sigstack *, struct sigstack *);
! 113: int sigaltstack(const struct sigaltstack *, struct sigaltstack *);
! 114: int sigvec(int, struct sigvec *, struct sigvec *);
! 115: void psignal(unsigned int, const char *);
! 116: int sigwait(const sigset_t *, int *);
1.1 deraadt 117: #endif /* !_POSIX_SOURCE */
118: #endif /* !_ANSI_SOURCE */
119: __END_DECLS
120:
121: #endif /* !_USER_SIGNAL_H */