1/* Generic signal.h */ 2/* $OpenLDAP$ */ 3/* This work is part of OpenLDAP Software <http://www.openldap.org/>. 4 * 5 * Copyright 1998-2011 The OpenLDAP Foundation. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted only as authorized by the OpenLDAP 10 * Public License. 11 * 12 * A copy of this license is available in file LICENSE in the 13 * top-level directory of the distribution or, alternatively, at 14 * <http://www.OpenLDAP.org/license.html>. 15 */ 16 17#ifndef _AC_SIGNAL_H 18#define _AC_SIGNAL_H 19 20#include <signal.h> 21 22#undef SIGNAL 23 24#if defined( HAVE_SIGACTION ) 25#define SIGNAL lutil_sigaction 26typedef void (*lutil_sig_t)(int); 27LDAP_LUTIL_F(lutil_sig_t) lutil_sigaction( int sig, lutil_sig_t func ); 28#define SIGNAL_REINSTALL(sig,act) (void)0 29#elif defined( HAVE_SIGSET ) 30#define SIGNAL sigset 31#define SIGNAL_REINSTALL sigset 32#else 33#define SIGNAL signal 34#define SIGNAL_REINSTALL signal 35#endif 36 37#if !defined( LDAP_SIGUSR1 ) || !defined( LDAP_SIGUSR2 ) 38#undef LDAP_SIGUSR1 39#undef LDAP_SIGUSR2 40 41# if defined(WINNT) || defined(_WINNT) || defined(_WIN32) 42# define LDAP_SIGUSR1 SIGILL 43# define LDAP_SIGUSR2 SIGTERM 44 45# elif !defined(HAVE_LINUX_THREADS) 46# define LDAP_SIGUSR1 SIGUSR1 47# define LDAP_SIGUSR2 SIGUSR2 48 49# else 50 /* 51 * Some versions of LinuxThreads unfortunately uses the only 52 * two signals reserved for user applications. This forces 53 * OpenLDAP to use other signals reserved for other uses. 54 */ 55 56# if defined( SIGSTKFLT ) 57# define LDAP_SIGUSR1 SIGSTKFLT 58# elif defined ( SIGSYS ) 59# define LDAP_SIGUSR1 SIGSYS 60# endif 61 62# if defined( SIGUNUSED ) 63# define LDAP_SIGUSR2 SIGUNUSED 64# elif defined ( SIGINFO ) 65# define LDAP_SIGUSR2 SIGINFO 66# elif defined ( SIGEMT ) 67# define LDAP_SIGUSR2 SIGEMT 68# endif 69# endif 70#endif 71 72#ifndef LDAP_SIGCHLD 73#ifdef SIGCHLD 74#define LDAP_SIGCHLD SIGCHLD 75#elif SIGCLD 76#define LDAP_SIGCHLD SIGCLD 77#endif 78#endif 79 80#endif /* _AC_SIGNAL_H */ 81