Home | History | Annotate | Line # | Download | only in include
signal.h revision 1.36.2.2
      1  1.36.2.2        he /*	$NetBSD: signal.h,v 1.36.2.2 2004/07/02 18:10:01 he Exp $	*/
      2       1.3       cgd 
      3       1.1       cgd /*-
      4       1.1       cgd  * Copyright (c) 1991, 1993
      5       1.1       cgd  *	The Regents of the University of California.  All rights reserved.
      6       1.1       cgd  *
      7       1.1       cgd  * Redistribution and use in source and binary forms, with or without
      8       1.1       cgd  * modification, are permitted provided that the following conditions
      9       1.1       cgd  * are met:
     10       1.1       cgd  * 1. Redistributions of source code must retain the above copyright
     11       1.1       cgd  *    notice, this list of conditions and the following disclaimer.
     12       1.1       cgd  * 2. Redistributions in binary form must reproduce the above copyright
     13       1.1       cgd  *    notice, this list of conditions and the following disclaimer in the
     14       1.1       cgd  *    documentation and/or other materials provided with the distribution.
     15      1.33       agc  * 3. Neither the name of the University nor the names of its contributors
     16       1.1       cgd  *    may be used to endorse or promote products derived from this software
     17       1.1       cgd  *    without specific prior written permission.
     18       1.1       cgd  *
     19       1.1       cgd  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     20       1.1       cgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     21       1.1       cgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     22       1.1       cgd  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     23       1.1       cgd  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     24       1.1       cgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     25       1.1       cgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     26       1.1       cgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     27       1.1       cgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     28       1.1       cgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     29       1.1       cgd  * SUCH DAMAGE.
     30       1.1       cgd  *
     31       1.1       cgd  *	@(#)signal.h	8.3 (Berkeley) 3/30/94
     32       1.1       cgd  */
     33       1.1       cgd 
     34      1.12    kleink #ifndef _SIGNAL_H_
     35      1.12    kleink #define _SIGNAL_H_
     36       1.1       cgd 
     37       1.1       cgd #include <sys/cdefs.h>
     38      1.12    kleink #include <sys/featuretest.h>
     39       1.1       cgd 
     40      1.25     bjh21 #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
     41      1.25     bjh21     defined(_NETBSD_SOURCE)
     42       1.5       jtc #include <sys/types.h>
     43       1.5       jtc #endif
     44       1.9    kleink 
     45       1.9    kleink #include <sys/signal.h>
     46       1.5       jtc 
     47      1.25     bjh21 #if defined(_NETBSD_SOURCE)
     48      1.19   thorpej extern __const char *__const *sys_signame __RENAME(__sys_signame14);
     49      1.21  christos #ifndef __SYS_SIGLIST_DECLARED
     50      1.21  christos #define __SYS_SIGLIST_DECLARED
     51      1.21  christos /* also in unistd.h */
     52      1.19   thorpej extern __const char *__const *sys_siglist __RENAME(__sys_siglist14);
     53      1.21  christos #endif /* __SYS_SIGLIST_DECLARED */
     54      1.19   thorpej extern __const int sys_nsig __RENAME(__sys_nsig14);
     55       1.1       cgd #endif
     56       1.1       cgd 
     57       1.1       cgd __BEGIN_DECLS
     58       1.1       cgd int	raise __P((int));
     59      1.28     bjh21 #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
     60      1.28     bjh21     defined(_NETBSD_SOURCE)
     61       1.1       cgd int	kill __P((pid_t, int));
     62      1.36  christos int	__libc_sigaction14 __P((int, const struct sigaction *,
     63      1.36  christos 	    struct sigaction *));
     64      1.13   mycroft 
     65      1.32   nathanw #if (_POSIX_C_SOURCE - 0L) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \
     66      1.32   nathanw     defined(_NETBSD_SOURCE)
     67      1.23   thorpej int	pthread_sigmask __P((int, const sigset_t *, sigset_t *));
     68      1.29   nathanw int	pthread_kill __P((pthread_t, int));
     69      1.32   nathanw #endif
     70      1.23   thorpej 
     71      1.15   thorpej #ifdef __LIBC12_SOURCE__
     72      1.13   mycroft int	sigaction __P((int, const struct sigaction13 *, struct sigaction13 *));
     73      1.13   mycroft int	__sigaction14 __P((int, const struct sigaction *, struct sigaction *));
     74      1.13   mycroft int	sigaddset __P((sigset13_t *, int));
     75      1.13   mycroft int	__sigaddset14 __P((sigset_t *, int));
     76      1.13   mycroft int	sigdelset __P((sigset13_t *, int));
     77      1.13   mycroft int	__sigdelset14 __P((sigset_t *, int));
     78      1.13   mycroft int	sigemptyset __P((sigset13_t *));
     79      1.13   mycroft int	__sigemptyset14 __P((sigset_t *));
     80      1.13   mycroft int	sigfillset __P((sigset13_t *));
     81      1.13   mycroft int	__sigfillset14 __P((sigset_t *));
     82      1.13   mycroft int	sigismember __P((const sigset13_t *, int));
     83      1.13   mycroft int	__sigismember14 __P((const sigset_t *, int));
     84      1.13   mycroft int	sigpending __P((sigset13_t *));
     85      1.13   mycroft int	__sigpending14 __P((sigset_t *));
     86      1.13   mycroft int	sigprocmask __P((int, const sigset13_t *, sigset13_t *));
     87      1.13   mycroft int	__sigprocmask14 __P((int, const sigset_t *, sigset_t *));
     88      1.13   mycroft int	sigsuspend __P((const sigset13_t *));
     89      1.13   mycroft int	__sigsuspend14 __P((const sigset_t *));
     90      1.15   thorpej #else /* !__LIBC12_SOURCE__ */
     91      1.13   mycroft int	sigaction __P((int, const struct sigaction *, struct sigaction *)) __RENAME(__sigaction14);
     92      1.13   mycroft int	sigaddset __P((sigset_t *, int)) __RENAME(__sigaddset14);
     93      1.13   mycroft int	sigdelset __P((sigset_t *, int)) __RENAME(__sigdelset14);
     94      1.13   mycroft int	sigemptyset __P((sigset_t *)) __RENAME(__sigemptyset14);
     95      1.13   mycroft int	sigfillset __P((sigset_t *)) __RENAME(__sigfillset14);
     96      1.13   mycroft int	sigismember __P((const sigset_t *, int)) __RENAME(__sigismember14);
     97      1.13   mycroft int	sigpending __P((sigset_t *)) __RENAME(__sigpending14);
     98      1.13   mycroft int	sigprocmask __P((int, const sigset_t *, sigset_t *)) __RENAME(__sigprocmask14);
     99      1.13   mycroft int	sigsuspend __P((const sigset_t *)) __RENAME(__sigsuspend14);
    100       1.4       jtc 
    101       1.4       jtc #if defined(__GNUC__) && defined(__STDC__)
    102      1.21  christos #ifndef errno
    103      1.21  christos int *__errno __P((void));
    104      1.21  christos #define errno (*__errno())
    105      1.21  christos #endif
    106      1.14   mycroft extern __inline int
    107      1.14   mycroft sigaddset(sigset_t *set, int signo)
    108      1.14   mycroft {
    109       1.6       jtc 	if (signo <= 0 || signo >= _NSIG) {
    110       1.4       jtc 		errno = 22;			/* EINVAL */
    111      1.14   mycroft 		return (-1);
    112       1.4       jtc 	}
    113      1.13   mycroft 	__sigaddset(set, signo);
    114       1.4       jtc 	return (0);
    115       1.4       jtc }
    116       1.4       jtc 
    117      1.14   mycroft extern __inline int
    118      1.14   mycroft sigdelset(sigset_t *set, int signo)
    119      1.14   mycroft {
    120       1.6       jtc 	if (signo <= 0 || signo >= _NSIG) {
    121       1.4       jtc 		errno = 22;			/* EINVAL */
    122      1.14   mycroft 		return (-1);
    123       1.4       jtc 	}
    124      1.13   mycroft 	__sigdelset(set, signo);
    125       1.4       jtc 	return (0);
    126       1.4       jtc }
    127       1.4       jtc 
    128      1.14   mycroft extern __inline int
    129      1.14   mycroft sigismember(const sigset_t *set, int signo)
    130      1.14   mycroft {
    131       1.6       jtc 	if (signo <= 0 || signo >= _NSIG) {
    132       1.4       jtc 		errno = 22;			/* EINVAL */
    133      1.14   mycroft 		return (-1);
    134       1.4       jtc 	}
    135      1.13   mycroft 	return (__sigismember(set, signo));
    136       1.4       jtc }
    137       1.4       jtc 
    138  1.36.2.1       jmc extern __inline int
    139  1.36.2.1       jmc sigemptyset(sigset_t *set)
    140  1.36.2.1       jmc {
    141  1.36.2.1       jmc 	__sigemptyset(set);
    142  1.36.2.1       jmc 	return (0);
    143  1.36.2.1       jmc }
    144  1.36.2.1       jmc 
    145  1.36.2.1       jmc extern __inline int
    146  1.36.2.1       jmc sigfillset(sigset_t *set)
    147  1.36.2.1       jmc {
    148  1.36.2.1       jmc 	__sigfillset(set);
    149  1.36.2.1       jmc 	return (0);
    150  1.36.2.1       jmc }
    151  1.36.2.1       jmc #endif /* __GNUC__ && __STDC__ */
    152      1.15   thorpej #endif /* !__LIBC12_SOURCE__ */
    153       1.5       jtc 
    154      1.22    kleink /*
    155  1.36.2.2        he  * X/Open CAE Specification Issue 4 Version 2
    156      1.22    kleink  */
    157      1.25     bjh21 #if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    158      1.25     bjh21     (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
    159       1.1       cgd int	killpg __P((pid_t, int));
    160       1.1       cgd int	siginterrupt __P((int, int));
    161       1.1       cgd int	sigstack __P((const struct sigstack *, struct sigstack *));
    162      1.11    kleink #ifdef __LIBC12_SOURCE__
    163      1.11    kleink int	sigaltstack __P((const struct sigaltstack13 *, struct sigaltstack13 *));
    164      1.11    kleink int	__sigaltstack14 __P((const stack_t *, stack_t *));
    165      1.11    kleink #else
    166      1.11    kleink int	sigaltstack __P((const stack_t *, stack_t *)) __RENAME(__sigaltstack14);
    167      1.11    kleink #endif
    168      1.22    kleink int	sighold __P((int));
    169      1.22    kleink int	sigignore __P((int));
    170      1.22    kleink int	sigpause __P((int));
    171      1.22    kleink int	sigrelse __P((int));
    172      1.22    kleink void	(*sigset __P((int, void (*)(int)))) __P((int));
    173  1.36.2.2        he #endif /* _XOPEN_SOURCE_EXTENDED || _XOPEN_SOURCE >= 500 || _NETBSD_SOURCE */
    174  1.36.2.2        he 
    175  1.36.2.2        he 
    176  1.36.2.2        he /*
    177  1.36.2.2        he  * X/Open CAE Specification Issue 5; IEEE Std 1003.1b-1993 (POSIX)
    178  1.36.2.2        he  */
    179  1.36.2.2        he #if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    180  1.36.2.2        he     defined(_NETBSD_SOURCE)
    181      1.24  jdolecek int	sigwait	__P((const sigset_t * __restrict, int * __restrict));
    182      1.24  jdolecek int	sigwaitinfo __P((const sigset_t * __restrict, siginfo_t * __restrict));
    183      1.24  jdolecek 
    184      1.24  jdolecek struct timespec;
    185      1.24  jdolecek int	sigtimedwait __P((const sigset_t * __restrict,
    186      1.24  jdolecek 	    siginfo_t * __restrict, const struct timespec * __restrict));
    187      1.24  jdolecek int	__sigtimedwait __P((const sigset_t * __restrict,
    188      1.24  jdolecek 	    siginfo_t * __restrict, struct timespec * __restrict));
    189      1.25     bjh21 #endif /* _POSIX_C_SOURCE >= 200112 || _XOPEN_SOURCE_EXTENDED || ... */
    190      1.22    kleink 
    191      1.12    kleink 
    192      1.25     bjh21 #if defined(_NETBSD_SOURCE)
    193      1.21  christos #ifndef __PSIGNAL_DECLARED
    194      1.21  christos #define __PSIGNAL_DECLARED
    195      1.21  christos /* also in unistd.h */
    196      1.12    kleink void	psignal __P((unsigned int, const char *));
    197      1.21  christos #endif /* __PSIGNAL_DECLARED */
    198      1.12    kleink int	sigblock __P((int));
    199      1.15   thorpej #ifdef __LIBC12_SOURCE__
    200      1.13   mycroft int	sigreturn __P((struct sigcontext13 *));
    201      1.35  christos #ifndef __HAVE_SIGINFO
    202      1.13   mycroft int	__sigreturn14 __P((struct sigcontext *));
    203      1.34  christos #endif
    204      1.13   mycroft #else
    205      1.35  christos #ifndef __HAVE_SIGINFO
    206      1.13   mycroft int	sigreturn __P((struct sigcontext *)) __RENAME(__sigreturn14);
    207      1.34  christos #endif
    208      1.13   mycroft #endif
    209      1.12    kleink int	sigsetmask __P((int));
    210      1.12    kleink int	sigvec __P((int, struct sigvec *, struct sigvec *));
    211      1.25     bjh21 #endif /* _NETBSD_SOURCE */
    212      1.12    kleink 
    213      1.28     bjh21 #endif	/* _POSIX_C_SOURCE || _XOPEN_SOURCE || _NETBSD_SOURCE */
    214       1.1       cgd __END_DECLS
    215       1.1       cgd 
    216      1.12    kleink #endif	/* !_SIGNAL_H_ */
    217