diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2005-11-15 01:17:02 +0000 | 
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2005-11-15 01:17:02 +0000 | 
| commit | f6677b70e1e6379e09122ed1c705814173b83a53 (patch) | |
| tree | fc42eb65c8a3d1e4f554a02694c5d45e3c2e8bb9 /libc/signal/sysv_signal.c | |
| parent | 20e7f611558cc6237cc1deb8c2a0f42a3960e2a0 (diff) | |
| download | uClibc-alpine-f6677b70e1e6379e09122ed1c705814173b83a53.tar.bz2 uClibc-alpine-f6677b70e1e6379e09122ed1c705814173b83a53.tar.xz  | |
update licenses and sync with glibc
Diffstat (limited to 'libc/signal/sysv_signal.c')
| -rw-r--r-- | libc/signal/sysv_signal.c | 52 | 
1 files changed, 29 insertions, 23 deletions
diff --git a/libc/signal/sysv_signal.c b/libc/signal/sysv_signal.c index 0c94577be..576fc0b8d 100644 --- a/libc/signal/sysv_signal.c +++ b/libc/signal/sysv_signal.c @@ -1,23 +1,25 @@ -/* Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1996, 1997, 2005 Free Software Foundation, Inc.     This file is part of the GNU C Library.     The GNU C Library is free software; you can redistribute it and/or -   modify it under the terms of the GNU Library General Public License as -   published by the Free Software Foundation; either version 2 of the -   License, or (at your option) any later version. +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version.     The GNU C Library is distributed in the hope that it will be useful,     but WITHOUT ANY WARRANTY; without even the implied warranty of     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Library General Public License for more details. +   Lesser General Public License for more details. -   You should have received a copy of the GNU Library General Public -   License along with the GNU C Library; see the file COPYING.LIB.  If not, -   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -   Boston, MA 02111-1307, USA.  */ +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */  #include <errno.h>  #include <signal.h> +#include <string.h>	/* For the real memset prototype.  */ +  /* Tolerate non-threads versions of Posix */  #ifndef SA_ONESHOT @@ -32,25 +34,29 @@  /* Set the handler for the signal SIG to HANDLER,     returning the old handler, or SIG_ERR on error.  */ -__sighandler_t __sysv_signal (int sig, __sighandler_t handler) +__sighandler_t +__sysv_signal (sig, handler) +     int sig; +     __sighandler_t handler;  { -    struct sigaction act, oact; +  struct sigaction act, oact; -    /* Check signal extents to protect __sigismember.  */ -    if (handler == SIG_ERR || sig < 1 || sig >= NSIG) +  /* Check signal extents to protect __sigismember.  */ +  if (handler == SIG_ERR || sig < 1 || sig >= NSIG)      { -	__set_errno (EINVAL); -	return SIG_ERR; +      __set_errno (EINVAL); +      return SIG_ERR;      } -    act.sa_handler = handler; -    if (__sigemptyset (&act.sa_mask) < 0) -	return SIG_ERR; -    act.sa_flags = SA_ONESHOT | SA_NOMASK | SA_INTERRUPT; -    act.sa_flags &= ~SA_RESTART; -    if (sigaction (sig, &act, &oact) < 0) -	return SIG_ERR; +  act.sa_handler = handler; +  if (__sigemptyset (&act.sa_mask) < 0) +    return SIG_ERR; +  act.sa_flags = SA_ONESHOT | SA_NOMASK | SA_INTERRUPT; +  act.sa_flags &= ~SA_RESTART; +  if (sigaction (sig, &act, &oact) < 0) +    return SIG_ERR; -    return oact.sa_handler; +  return oact.sa_handler;  } +  weak_alias (__sysv_signal, sysv_signal)  | 
