signal.h revision 105013
1132720Skan/*-
2117397Skan * Copyright (c) 1991, 1993
3169691Skan *	The Regents of the University of California.  All rights reserved.
4132720Skan *
5132720Skan * Redistribution and use in source and binary forms, with or without
6132720Skan * modification, are permitted provided that the following conditions
7132720Skan * are met:
8132720Skan * 1. Redistributions of source code must retain the above copyright
9132720Skan *    notice, this list of conditions and the following disclaimer.
10117397Skan * 2. Redistributions in binary form must reproduce the above copyright
11132720Skan *    notice, this list of conditions and the following disclaimer in the
12132720Skan *    documentation and/or other materials provided with the distribution.
13132720Skan * 3. All advertising materials mentioning features or use of this software
14132720Skan *    must display the following acknowledgement:
15117397Skan *	This product includes software developed by the University of
16132720Skan *	California, Berkeley and its contributors.
17132720Skan * 4. Neither the name of the University nor the names of its contributors
18169691Skan *    may be used to endorse or promote products derived from this software
19132720Skan *    without specific prior written permission.
20117397Skan *
21132720Skan * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22132720Skan * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23132720Skan * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24132720Skan * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25132720Skan * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26132720Skan * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27132720Skan * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28132720Skan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29117397Skan * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30132720Skan * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31169691Skan * SUCH DAMAGE.
32117397Skan *
33169691Skan *	@(#)signal.h	8.3 (Berkeley) 3/30/94
34169691Skan *
35132720Skan * $FreeBSD: head/include/signal.h 105013 2002-10-13 00:29:06Z mike $
36132720Skan */
37132720Skan
38132720Skan#ifndef _SIGNAL_H_
39132720Skan#define	_SIGNAL_H_
40132720Skan
41132720Skan#include <sys/cdefs.h>
42132720Skan#include <sys/_types.h>
43132720Skan#include <sys/signal.h>
44117397Skan
45132720Skan#if __BSD_VISIBLE
46132720Skanextern __const char *__const sys_signame[NSIG];
47132720Skanextern __const char *__const sys_siglist[NSIG];
48117397Skanextern __const int sys_nsig;
49132720Skan#endif
50132720Skan
51132720Skan#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
52132720Skan#ifndef _PID_T_DECLARED
53132720Skantypedef	__pid_t		pid_t;
54132720Skan#define	_PID_T_DECLARED
55132720Skan#endif
56132720Skan#endif
57132720Skan
58132720Skan__BEGIN_DECLS
59132720Skanstruct timespec;
60132720Skan
61132720Skanint	raise(int);
62132720Skan
63132720Skan#if __POSIX_VISIBLE || __XSI_VISIBLE
64169691Skanint	kill(__pid_t, int);
65169691Skanint	sigaction(int, const struct sigaction * __restrict,
66132720Skan	    struct sigaction * __restrict);
67132720Skanint	sigaddset(sigset_t *, int);
68132720Skanint	sigdelset(sigset_t *, int);
69169691Skanint	sigemptyset(sigset_t *);
70132720Skanint	sigfillset(sigset_t *);
71132720Skanint	sigismember(const sigset_t *, int);
72132720Skanint	sigpending(sigset_t *);
73132720Skanint	sigprocmask(int, const sigset_t * __restrict, sigset_t * __restrict);
74132720Skanint	sigsuspend(const sigset_t *);
75132720Skanint	sigwait(const sigset_t * __restrict, int * __restrict);
76132720Skan#endif
77132720Skan
78132720Skan#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 600
79132720Skanint	sigqueue(__pid_t, int, const union sigval);
80132720Skanint	sigtimedwait(const sigset_t * __restrict, siginfo_t * __restrict,
81132720Skan	    const struct timespec * __restrict);
82132720Skanint	sigwaitinfo(const sigset_t * __restrict, siginfo_t * __restrict);
83132720Skan#endif
84132720Skan
85132720Skan#if __XSI_VISIBLE
86132720Skanint	killpg(__pid_t, int);
87132720Skanint	sigaltstack(const stack_t * __restrict, stack_t * __restrict);
88169691Skanint	sigpause(int);
89169691Skan#endif
90132720Skan
91132720Skan#if __POSIX_VISIBLE >= 200112
92169691Skanint	siginterrupt(int, int);
93132720Skan#endif
94132720Skan
95169691Skan#if __BSD_VISIBLE
96169691Skanint	sigblock(int);
97int	sigreturn(const struct __ucontext *);
98int	sigsetmask(int);
99int	sigstack(const struct sigstack *, struct sigstack *);
100int	sigvec(int, struct sigvec *, struct sigvec *);
101void	psignal(unsigned int, const char *);
102#endif
103__END_DECLS
104
105#endif /* !_SIGNAL_H_ */
106