00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ACE_OS_INCLUDE_OS_SIGNAL_H
00017 #define ACE_OS_INCLUDE_OS_SIGNAL_H
00018
00019 #include "ace/pre.h"
00020
00021 #include "ace/config-lite.h"
00022
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif
00026
00027 #include "ace/os_include/sys/os_types.h"
00028
00029 #if !defined (ACE_LACKS_SIGNAL_H)
00030 extern "C" {
00031 # include <signal.h>
00032 }
00033 #endif
00034
00035
00036 #if defined (SCO)
00037 # define SIGIO SIGPOLL
00038 # include <sys/regset.h>
00039 #endif
00040
00041 #if defined (ACE_HAS_SIGINFO_T)
00042 # if !defined (ACE_LACKS_SIGINFO_H)
00043 # if defined (__QNX__) || defined (__OpenBSD__) || defined (__INTERIX)
00044 # include <sys/siginfo.h>
00045 # else
00046 # include <siginfo.h>
00047 # endif
00048 # endif
00049 #endif
00050
00051 #if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620) && !defined (__RTP__)
00052 # include <sigLib.h>
00053 #endif
00054
00055
00056 #ifdef __cplusplus
00057 extern "C"
00058 {
00059 #endif
00060
00061 #if defined (ACE_LACKS_SIGSET)
00062 typedef u_int sigset_t;
00063 #endif
00064
00065 #if defined (ACE_HAS_SIG_MACROS)
00066 # undef sigemptyset
00067 # undef sigfillset
00068 # undef sigaddset
00069 # undef sigdelset
00070 # undef sigismember
00071 #endif
00072
00073
00074
00075
00076 #if defined (linux) && defined (__OPTIMIZE__)
00077 # undef sigemptyset
00078 # undef sigfillset
00079 #endif
00080
00081 #if !defined (ACE_HAS_SIG_ATOMIC_T)
00082 typedef int sig_atomic_t;
00083 #endif
00084
00085 # if !defined (SA_SIGINFO)
00086 # define SA_SIGINFO 0
00087 # endif
00088
00089 # if !defined (SA_RESTART)
00090 # define SA_RESTART 0
00091 # endif
00092
00093 #if !defined (SIGHUP)
00094 # define SIGHUP 0
00095 #endif
00096
00097 #if !defined (SIGINT)
00098 # define SIGINT 0
00099 #endif
00100
00101 #if !defined (SIGSEGV)
00102 # define SIGSEGV 0
00103 #endif
00104
00105 #if !defined (SIGIO)
00106 # define SIGIO 0
00107 #endif
00108
00109 #if !defined (SIGUSR1)
00110 # define SIGUSR1 0
00111 #endif
00112
00113 #if !defined (SIGUSR2)
00114 # define SIGUSR2 0
00115 #endif
00116
00117 #if !defined (SIGCHLD)
00118 # define SIGCHLD 0
00119 #endif
00120
00121 #if !defined (SIGCLD)
00122 # define SIGCLD SIGCHLD
00123 #endif
00124
00125 #if !defined (SIGQUIT)
00126 # define SIGQUIT 0
00127 #endif
00128
00129 #if !defined (SIGPIPE)
00130 # define SIGPIPE 0
00131 #endif
00132
00133 #if !defined (SIGALRM)
00134 # define SIGALRM 0
00135 #endif
00136
00137 #if !defined (SIG_DFL)
00138 # define SIG_DFL ((__sighandler_t) 0)
00139 #endif
00140
00141 #if !defined (SIG_IGN)
00142 # define SIG_IGN ((__sighandler_t) 1)
00143 #endif
00144
00145 #if !defined (SIG_ERR)
00146 # define SIG_ERR ((__sighandler_t) -1)
00147 #endif
00148
00149
00150
00151
00152
00153
00154 # define ACE_SIGIO -1
00155 # define ACE_SIGURG -2
00156 # define ACE_CLOEXEC -3
00157
00158 #if defined (ACE_VXWORKS)
00159 # define ACE_NSIG (_NSIGS + 1)
00160 #elif defined (__Lynx__)
00161 # define ACE_NSIG (NSIG + 1)
00162 #elif defined (__rtems__)
00163 # define ACE_NSIG (SIGRTMAX)
00164 #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)
00165 # define ACE_NSIG _NSIG
00166 #else
00167
00168
00169 # define ACE_NSIG NSIG
00170 #endif
00171
00172 #if defined (ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES)
00173
00174
00175
00176
00177 typedef void (*ACE_SignalHandler)(int);
00178 typedef void (*ACE_SignalHandlerV)(int);
00179
00180
00181
00182 #elif defined (ACE_HAS_LYNXOS_SIGNALS)
00183 typedef void (*ACE_SignalHandler)(...);
00184 typedef void (*ACE_SignalHandlerV)(...);
00185 #elif defined (ACE_HAS_TANDEM_SIGNALS)
00186 typedef void (*ACE_SignalHandler)(...);
00187 typedef void (*ACE_SignalHandlerV)(...);
00188 #elif defined (ACE_HAS_IRIX_53_SIGNALS)
00189 typedef void (*ACE_SignalHandler)(...);
00190 typedef void (*ACE_SignalHandlerV)(...);
00191 #elif defined (ACE_HAS_SPARCWORKS_401_SIGNALS)
00192 typedef void (*ACE_SignalHandler)(int, ...);
00193 typedef void (*ACE_SignalHandlerV)(int,...);
00194 #elif defined (ACE_HAS_SUNOS4_SIGNAL_T)
00195 typedef void (*ACE_SignalHandler)(...);
00196 typedef void (*ACE_SignalHandlerV)(...);
00197 #elif defined (ACE_HAS_SVR4_SIGNAL_T)
00198
00199 typedef void (*ACE_SignalHandler)(int);
00200 # if !defined (m88k)
00201 typedef void (*ACE_SignalHandlerV)(void);
00202 # else
00203 typedef void (*ACE_SignalHandlerV)(int);
00204 # endif
00205 #elif defined (ACE_WIN32)
00206 typedef void (__cdecl *ACE_SignalHandler)(int);
00207 typedef void (__cdecl *ACE_SignalHandlerV)(int);
00208 #elif defined (ACE_HAS_UNIXWARE_SVR4_SIGNAL_T)
00209 typedef void (*ACE_SignalHandler)(int);
00210 typedef void (*ACE_SignalHandlerV)(...);
00211 #elif defined (INTEGRITY)
00212 typedef void (*ACE_SignalHandler)();
00213 typedef void (*ACE_SignalHandlerV)(int);
00214 #else
00215 # if defined (SIG_PF)
00216 # define ACE_SignalHandler SIG_PF
00217 # else
00218 typedef void (*ACE_SignalHandler)(int);
00219 # endif
00220 typedef void (*ACE_SignalHandlerV)(...);
00221 #endif
00222
00223 #if defined (ACE_LACKS_SIGACTION)
00224 struct sigaction
00225 {
00226 int sa_flags;
00227 ACE_SignalHandlerV sa_handler;
00228 sigset_t sa_mask;
00229 };
00230 #endif
00231
00232
00233 #if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
00234 #define ACE_SIGRTMIN SIGRTMIN
00235 #define ACE_SIGRTMAX SIGRTMAX
00236
00237 #else
00238
00239 #ifndef ACE_SIGRTMIN
00240 #define ACE_SIGRTMIN 0
00241 #endif
00242
00243 #ifndef ACE_SIGRTMAX
00244 #define ACE_SIGRTMAX 0
00245 #endif
00246
00247 #endif
00248
00249 #if defined (DIGITAL_UNIX)
00250
00251
00252
00253
00254 # if defined (__DECCXX_VER)
00255 # undef sigwait
00256
00257
00258
00259 int _Psigwait __((const sigset_t *set, int *sig));
00260 # endif
00261 #elif !defined (ACE_HAS_SIGWAIT)
00262 # if defined(__rtems__)
00263 int sigwait (const sigset_t *set, int *sig);
00264 # else
00265 int sigwait (sigset_t *set);
00266 # endif
00267 #endif
00268
00269 #if !defined (ACE_HAS_PTHREAD_SIGMASK_PROTO)
00270 int pthread_sigmask(int, const sigset_t *, sigset_t *);
00271 #endif
00272
00273 #ifdef __cplusplus
00274 }
00275 #endif
00276
00277 #include "ace/os_include/os_ucontext.h"
00278
00279 #include "ace/post.h"
00280 #endif