xref: /netbsd-src/external/bsd/openldap/dist/include/ac/signal.h (revision 404fbe5fb94ca1e054339640cabb2801ce52dd30)
1 /* Generic signal.h */
2 /* $OpenLDAP: pkg/ldap/include/ac/signal.h,v 1.25.2.3 2008/02/11 23:26:40 kurt Exp $ */
3 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4  *
5  * Copyright 1998-2008 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
26 typedef void (*lutil_sig_t)(int);
27 LDAP_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