123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #ifndef _SIGNAL_H
- #define _SIGNAL_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
- #ifdef _GNU_SOURCE
- #define __siginfo siginfo
- #endif
- #define __NEED_size_t
- #define __NEED_pid_t
- #define __NEED_uid_t
- #define __NEED_struct_timespec
- #define __NEED_pthread_t
- #define __NEED_pthread_attr_t
- #define __NEED_time_t
- #define __NEED_clock_t
- #define __NEED_sigset_t
- #define __NEED_siginfo_t
- #include <bits/alltypes.h>
- struct sigaction {
- union {
- void (*sa_handler)(int);
- void (*sa_sigaction)(int, siginfo_t *, void *);
- } __sa_handler;
- sigset_t sa_mask;
- int sa_flags;
- void (*__sa_restorer)(void);
- };
- #define sa_handler __sa_handler.sa_handler
- #define sa_sigaction __sa_handler.sa_sigaction
- typedef struct {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
- union sigval {
- int sival_int;
- void *sival_ptr;
- };
- struct sigevent {
- union sigval sigev_value;
- int sigev_signo;
- int sigev_notify;
- void (*sigev_notify_function)(union sigval);
- pthread_attr_t *sigev_notify_attributes;
- };
- #define SIGEV_SIGNAL 0
- #define SIGEV_NONE 1
- #define SIGEV_THREAD 2
- int __libc_current_sigrtmin(void);
- int __libc_current_sigrtmax(void);
- #define SIGRTMIN (__libc_current_sigrtmin())
- #define SIGRTMAX (__libc_current_sigrtmax())
- int kill(pid_t, int);
- int sigemptyset(sigset_t *);
- int sigfillset(sigset_t *);
- int sigaddset(sigset_t *, int);
- int sigdelset(sigset_t *, int);
- int sigismember(const sigset_t *, int);
- int sigprocmask(int, const sigset_t *, sigset_t *);
- int sigsuspend(const sigset_t *);
- int sigaction(int, const struct sigaction *, struct sigaction *);
- int sigpending(sigset_t *);
- int sigwait(const sigset_t *, int *);
- int sigwaitinfo(const sigset_t *, siginfo_t *);
- int sigtimedwait(const sigset_t *, siginfo_t *, const struct timespec *);
- int sigqueue(pid_t, int, const union sigval);
- int pthread_sigmask(int, const sigset_t *, sigset_t *);
- int pthread_kill(pthread_t, int);
- #endif
- #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
- int killpg(pid_t, int);
- int sigaltstack(const stack_t *, stack_t *);
- int sighold(int);
- int sigignore(int);
- int siginterrupt(int, int);
- int sigpause(int);
- int sigrelse(int);
- void (*sigset(int, void (*)(int)))(int);
- #endif
- #ifdef _GNU_SOURCE
- typedef void (*sighandler_t)(int);
- void (*bsd_signal(int, void (*)(int)))(int);
- #endif
- #include <bits/signal.h>
- typedef int sig_atomic_t;
- void (*signal(int, void (*)(int)))(int);
- int raise(int);
- #ifdef __cplusplus
- }
- #endif
- #endif
|