--- include/signal.h Sun Dec 24 19:03:09 1995 +++ include/signal.h Wed Nov 3 21:31:11 1999 @@ -1,3 +1,5 @@ +/* $NetBSD: patch-bw,v 1.1 1999/11/05 17:13:29 explorer Exp $ */ + /*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. @@ -33,48 +35,160 @@ * @(#)signal.h 8.3 (Berkeley) 3/30/94 */ -#ifndef _SIGNAL_H -#define _SIGNAL_H +#ifndef _SIGNAL_H_ +#define _SIGNAL_H_ -#include #include -#include +#include -__BEGIN_DECLS +#if !defined(_ANSI_SOURCE) +#include +#endif -int raise __P((int)); +#include -#ifndef _ANSI_SOURCE +#include -int sigfillset __P((sigset_t *)); -int sigemptyset __P((sigset_t *)); -int sigaddset __P((sigset_t *, int)); -int sigdelset __P((sigset_t *, int)); -int sigismember __P((const sigset_t *, int)); -int sigsuspend __P((const sigset_t *)); -int sigprocmask __P((int, const sigset_t *, sigset_t *)); +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \ + !defined(_XOPEN_SOURCE) +extern __const char *__const *sys_signame __RENAME(__sys_signame14); +extern __const char *__const *sys_siglist __RENAME(__sys_siglist14); +extern __const int sys_nsig __RENAME(__sys_nsig14); +#endif -/* Still need work */ +__BEGIN_DECLS +int raise __P((int)); +#ifndef _ANSI_SOURCE int kill __P((pid_t, int)); -int sigaction __P((int, const struct sigaction *, struct sigaction *)); -int sigpending __P((sigset_t *)); - -#ifndef _POSIX_SOURCE +#ifdef __LIBC12_SOURCE__ +int sigaction __P((int, const struct sigaction13 *, struct sigaction13 *)); +int __sigaction14 __P((int, const struct sigaction *, struct sigaction *)); +int sigaddset __P((sigset13_t *, int)); +int __sigaddset14 __P((sigset_t *, int)); +int sigdelset __P((sigset13_t *, int)); +int __sigdelset14 __P((sigset_t *, int)); +int sigemptyset __P((sigset13_t *)); +int __sigemptyset14 __P((sigset_t *)); +int sigfillset __P((sigset13_t *)); +int __sigfillset14 __P((sigset_t *)); +int sigismember __P((const sigset13_t *, int)); +int __sigismember14 __P((const sigset_t *, int)); +int sigpending __P((sigset13_t *)); +int __sigpending14 __P((sigset_t *)); +int sigprocmask __P((int, const sigset13_t *, sigset13_t *)); +int __sigprocmask14 __P((int, const sigset_t *, sigset_t *)); +int sigsuspend __P((const sigset13_t *)); +int __sigsuspend14 __P((const sigset_t *)); +#else /* !__LIBC12_SOURCE__ */ +int sigaction __P((int, const struct sigaction *, struct sigaction *)) __RENAME(__sigaction14); +int sigaddset __P((sigset_t *, int)) __RENAME(__sigaddset14); +int sigdelset __P((sigset_t *, int)) __RENAME(__sigdelset14); +int sigemptyset __P((sigset_t *)) __RENAME(__sigemptyset14); +int sigfillset __P((sigset_t *)) __RENAME(__sigfillset14); +int sigismember __P((const sigset_t *, int)) __RENAME(__sigismember14); +int sigpending __P((sigset_t *)) __RENAME(__sigpending14); +int sigprocmask __P((int, const sigset_t *, sigset_t *)) __RENAME(__sigprocmask14); +int sigsuspend __P((const sigset_t *)) __RENAME(__sigsuspend14); + +#if defined(__GNUC__) && defined(__STDC__) +extern __inline int +sigaddset(sigset_t *set, int signo) +{ +#ifdef _REENTRANT + extern int *__errno __P((void)); +#else + extern int errno; +#endif + + if (signo <= 0 || signo >= _NSIG) { +#ifdef _REENTRANT + *__errno() = 22; /* EINVAL */ +#else + errno = 22; /* EINVAL */ +#endif + return (-1); + } + __sigaddset(set, signo); + return (0); +} + +extern __inline int +sigdelset(sigset_t *set, int signo) +{ +#ifdef _REENTRANT + extern int *__errno __P((void)); +#else + extern int errno; +#endif + + if (signo <= 0 || signo >= _NSIG) { +#ifdef _REENTRANT + *__errno() = 22; /* EINVAL */ +#else + errno = 22; /* EINVAL */ +#endif + return (-1); + } + __sigdelset(set, signo); + return (0); +} + +extern __inline int +sigismember(const sigset_t *set, int signo) +{ +#ifdef _REENTRANT + extern int *__errno __P((void)); +#else + extern int errno; +#endif + + if (signo <= 0 || signo >= _NSIG) { +#ifdef _REENTRANT + *__errno() = 22; /* EINVAL */ +#else + errno = 22; /* EINVAL */ +#endif + return (-1); + } + return (__sigismember(set, signo)); +} +#endif /* __GNUC__ && __STDC__ */ + +/* List definitions after function declarations, or Reiser cpp gets upset. */ +#define sigemptyset(set) (__sigemptyset(set), /*LINTED*/0) +#define sigfillset(set) (__sigfillset(set), /*LINTED*/ 0) +#endif /* !__LIBC12_SOURCE__ */ + +#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ + (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \ + (_XOPEN_SOURCE - 0) >= 500 int killpg __P((pid_t, int)); int siginterrupt __P((int, int)); -void psignal __P((unsigned int, const char *)); +int sigpause __P((int)); +int sigstack __P((const struct sigstack *, struct sigstack *)); +#ifdef __LIBC12_SOURCE__ +int sigaltstack __P((const struct sigaltstack13 *, struct sigaltstack13 *)); +int __sigaltstack14 __P((const stack_t *, stack_t *)); +#else +int sigaltstack __P((const stack_t *, stack_t *)) __RENAME(__sigaltstack14); +#endif +#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || ... */ -/* int sigpause __P((int)); */ -/* int sigsetmask __P((int)); */ -/* int sigblock __P((int)); */ -/* int sigreturn __P((struct sigcontext *)); */ -/* int sigvec __P((int, struct sigvec *, struct sigvec *)); */ -/* int sigstack __P((const struct sigstack *, struct sigstack *)); */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) +void psignal __P((unsigned int, const char *)); +int sigblock __P((int)); +#ifdef __LIBC12_SOURCE__ +int sigreturn __P((struct sigcontext13 *)); +int __sigreturn14 __P((struct sigcontext *)); +#else +int sigreturn __P((struct sigcontext *)) __RENAME(__sigreturn14); +#endif +int sigsetmask __P((int)); +int sigvec __P((int, struct sigvec *, struct sigvec *)); +#endif /* !_POSIX_C_SOURCE && !_XOPEN_SOURCE */ -#endif /* !_POSIX_SOURCE */ #endif /* !_ANSI_SOURCE */ - __END_DECLS -#endif /* !_USER_SIGNAL_H */ +#endif /* !_SIGNAL_H_ */