autoconf: split into subdirectories; redirect calls in debug builds
[m6w6/ext-psi] / m4 / posix / signal.m4
diff --git a/m4/posix/signal.m4 b/m4/posix/signal.m4
new file mode 100644 (file)
index 0000000..a9225ce
--- /dev/null
@@ -0,0 +1,187 @@
+PSI_CHECK_SIGNAL() {
+       PSI_CONFIG_POSIX(signal, signal.h)
+       
+       PSI_PTHREAD
+       
+       PSI_CONST(SIG_DFL, int)
+       PSI_CONST(SIG_ERR, int)
+       PSI_CONST(SIG_HOLD, int)
+       PSI_CONST(SIG_IGN, int)
+       
+       PSI_CONST(SIGEV_NONE, int)
+       PSI_CONST(SIGEV_SIGNAL, int)
+       PSI_CONST(SIGEV_THREAD, int)
+       
+       PSI_MACRO(int SIGRTMIN)
+       PSI_MACRO(int SIGRTMAX)
+       PSI_MACRO(int RTSIG_MAX)
+       
+       PSI_CONST(SIGABRT, int)
+       PSI_CONST(SIGALRM, int)
+       PSI_CONST(SIGBUS, int)
+       PSI_CONST(SIGCHLD, int)
+       PSI_CONST(SIGCONT, int)
+       PSI_CONST(SIGFPE, int)
+       PSI_CONST(SIGHUP, int)
+       PSI_CONST(SIGILL, int)
+       PSI_CONST(SIGINT, int)
+       PSI_CONST(SIGKILL, int)
+       PSI_CONST(SIGPIPE, int)
+       PSI_CONST(SIGQUIT, int)
+       PSI_CONST(SIGSEGV, int)
+       PSI_CONST(SIGSTOP, int)
+       PSI_CONST(SIGTERM, int)
+       PSI_CONST(SIGTSTP, int)
+       PSI_CONST(SIGTTIN, int)
+       PSI_CONST(SIGTTOU, int)
+       PSI_CONST(SIGUSR1, int)
+       PSI_CONST(SIGUSR2, int)
+       PSI_CONST(SIGPOLL, int)
+       PSI_CONST(SIGPROF, int)
+       PSI_CONST(SIGSYS, int)
+       PSI_CONST(SIGTRAP, int)
+       PSI_CONST(SIGURG, int)
+       PSI_CONST(SIGVTALRM, int)
+       PSI_CONST(SIGXCPU, int)
+       PSI_CONST(SIGXFSZ, int)
+
+       PSI_MACRO(int SIG_BLOCK)
+       PSI_MACRO(int SIG_UNBLOCK)
+       PSI_MACRO(int SIG_SETMASK)
+       
+       PSI_CONST(SA_NOCLDSTOP, int)
+       PSI_CONST(SA_ONSTACK, int)
+       PSI_CONST(SA_RESETHAND, int)
+       PSI_CONST(SA_RESTART, int)
+       PSI_CONST(SA_SIGINFO, int)
+       PSI_CONST(SA_NOCLDWAIT, int)
+       PSI_CONST(SA_NODEFER, int)
+       PSI_CONST(SS_ONSTACK, int)
+       PSI_CONST(SS_DISABLE, int)
+       PSI_CONST(MINSIGSTKSZ, int)
+       PSI_CONST(SIGSTKSZ, int)
+
+       PSI_CONST(ILL_ILLOPC, int)
+       PSI_CONST(ILL_ILLOPN, int)
+       PSI_CONST(ILL_ILLADR, int)
+       PSI_CONST(ILL_ILLTRP, int)
+       PSI_CONST(ILL_PRVOPC, int)
+       PSI_CONST(ILL_PRVREG, int)
+       PSI_CONST(ILL_COPROC, int)
+       PSI_CONST(ILL_BADSTK, int)
+       PSI_CONST(FPE_INTDIV, int)
+       PSI_CONST(FPE_INTOVF, int)
+       PSI_CONST(FPE_FLTDIV, int)
+       PSI_CONST(FPE_FLTOVF, int)
+       PSI_CONST(FPE_FLTUND, int)
+       PSI_CONST(FPE_FLTRES, int)
+       PSI_CONST(FPE_FLTINV, int)
+       PSI_CONST(FPE_FLTSUB, int)
+       PSI_CONST(SEGV_MAPERR, int)
+       PSI_CONST(SEGV_ACCERR, int)
+       PSI_CONST(BUS_ADRALN, int)
+       PSI_CONST(BUS_ADRERR, int)
+       PSI_CONST(BUS_OBJERR, int)
+       PSI_CONST(TRAP_BRKPT, int)
+       PSI_CONST(TRAP_TRACE, int)
+       PSI_CONST(CLD_EXITED, int)
+       PSI_CONST(CLD_KILLED, int)
+       PSI_CONST(CLD_DUMPED, int)
+       PSI_CONST(CLD_TRAPPED, int)
+       PSI_CONST(CLD_STOPPED, int)
+       PSI_CONST(CLD_CONTINUED, int)
+       PSI_CONST(POLL_IN, int)
+       PSI_CONST(POLL_OUT, int)
+       PSI_CONST(POLL_MSG, int)
+       PSI_CONST(POLL_ERR, int)
+       PSI_CONST(POLL_PRI, int)
+       PSI_CONST(POLL_HUP, int)
+       PSI_CONST(SI_USER, int)
+       PSI_CONST(SI_QUEUE, int)
+       PSI_CONST(SI_TIMER, int)
+       PSI_CONST(SI_ASYNCIO, int)
+       PSI_CONST(SI_MESGQ, int)
+
+       PSI_TYPE(sig_atomic_t, int)
+       PSI_OPAQUE_TYPE(sigset_t)
+       PSI_OPAQUE_TYPE(mcontext_t)
+       
+       PSI_UNION(union sigval, [
+               int sival_int,
+               void *sival_ptr]
+       )
+       
+       PSI_STRUCT(struct sigevent, [
+               int sigev_notify,
+               int sigev_signo,
+               union sigval sigev_value]
+       )
+       
+       PSI_STRUCT(stack_t, [
+               void *ss_sp,
+               size_t ss_size,
+               int ss_flags]
+       )
+       
+       PSI_FUNCTOR_TYPE(void sa_handler, [(int signo)])
+       PSI_FUNCTOR_TYPE(void sa_sigaction, [(int signo, siginfo_t *info, ucontext_t *context)])
+       
+       PSI_STRUCT(struct sigaction, [
+               sa_handler sa_handler,
+               sigset_t sa_mask,
+               int sa_flags,
+               sa_sigaction sa_sigaction]
+       )
+       
+       PSI_STRUCT(ucontext_t, [
+               ucontext_t *uc_link,
+               sigset_t uc_sigmask,
+               stack_t uc_stack,
+               mcontext_t uc_mcontext]
+       )
+       
+       PSI_STRUCT(siginfo_t, [
+               int si_signo,
+               int si_code,
+               int si_errno,
+               pid_t si_pid,
+               uid_t si_uid,
+               void *si_addr,
+               int si_status,
+               long si_band,
+               union sigval si_value]
+       )
+       
+       PSI_DECL(int kill, [(pid_t pid, int sig)])
+       PSI_DECL(int killpg, [(pid_t pgrp, int sig)])
+       PSI_DECL(void psiginfo, [(const siginfo_t *pinfo, const char *s)])
+       PSI_DECL(void psignal, [(int sig, const char *s)])
+       
+       PSI_SH_TEST_POSIX_ENABLED(pthread, [
+               PSI_DECL(int pthread_kill, [(pthread_t thread, int sig)])
+               PSI_DECL(int pthread_sigmask, [(int how, const sigset_t *set, sigset_t *oldset)])
+       ])
+       
+       PSI_DECL(int raise, [(int sig)])
+       PSI_DECL(int sigaction, [(int sig, const struct sigaction *act, struct sigaction *oact)])
+       PSI_DECL(int sigaddset, [(sigset_t * set, int signum)])
+       PSI_DECL(int sigaltstack, [(const stack_t *ss, stack_t *oss)])
+       PSI_DECL(int sigdelset, [(sigset_t *set, int signum)])
+       PSI_DECL(int sigemptyset, [(sigset_t *set)])
+       PSI_DECL(int sigfillset, [(sigset_t *set)])
+       PSI_DECL(int sighold, [(int sig)])
+       PSI_DECL(int sigignore, [(int sig)])
+       PSI_DECL(int siginterrupt, [(int sig, int flag)])
+       PSI_DECL(int sigismember, [(const sigset_t *set, int signum)])
+       PSI_DECL(void *signal, [(int sig, void *func)])
+       PSI_DECL(int sigpause, [(int sig)])
+       PSI_DECL(int sigpending, [(sigset_t *set)])
+       PSI_DECL(int sigprocmask, [(int how, const sigset_t *set, sigset_t *oset)])
+       PSI_DECL(int sigqueue, [(pid_t pid, int sig, const union sigval value)])
+       PSI_DECL(int sigrelse, [(int sig)])
+       PSI_DECL(void *sigset, [(int sig, void *disp)])
+       PSI_DECL(int sigsuspend, [(const sigset_t *sigmask)])
+       PSI_DECL(int sigtimedwait, [(const sigset_t *set, siginfo_t *info, const struct timespec *timeout)])
+       PSI_DECL(int sigwait, [(const sigset_t *set, int *sig)])
+       PSI_DECL(int sigwaitinfo, [(const sigset_t *set, siginfo_t *info)])
+}
\ No newline at end of file