123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /*
- * File : signals.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Change Logs:
- * Date Author Notes
- * 2017/10/1 Bernard The first version
- */
- #ifndef POSIX_SIGNAL_H__
- #define POSIX_SIGNAL_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <rtthread.h>
- enum rt_signal_value{
- SIG1 = SIGHUP,
- SIG2 = SIGINT,
- SIG3 = SIGQUIT,
- SIG4 = SIGILL,
- SIG5 = SIGTRAP,
- SIG6 = SIGABRT,
- SIG7 = SIGEMT,
- SIG8 = SIGFPE,
- SIG9 = SIGKILL,
- SIG10 = SIGBUS,
- SIG11 = SIGSEGV,
- SIG12 = SIGSYS,
- SIG13 = SIGPIPE,
- SIG14 = SIGALRM,
- SIG15 = SIGTERM,
- SIG16 = SIGURG,
- SIG17 = SIGSTOP,
- SIG18 = SIGTSTP,
- SIG19 = SIGCONT,
- SIG20 = SIGCHLD,
- SIG21 = SIGTTIN,
- SIG22 = SIGTTOU,
- SIG23 = SIGPOLL,
- SIG24 = 24, // SIGXCPU,
- SIG25 = 25, // SIGXFSZ,
- SIG26 = 26, // SIGVTALRM,
- SIG27 = 27, // SIGPROF,
- SIG28 = SIGWINCH,
- SIG29 = 29, // SIGLOST,
- SIG30 = SIGUSR1,
- SIG31 = SIGUSR2,
- SIGRT_MIN = 27, // SIGRTMIN,
- SIGRT_MAX = 31, // SIGRTMAX,
- SIGMAX = NSIG,
- };
- /*
- The structure definitions on newlib:
- typedef void (*_sig_func_ptr)(int);
- struct sigaction
- {
- _sig_func_ptr sa_handler;
- sigset_t sa_mask;
- int sa_flags;
- };
- typedef int sig_atomic_t;
- typedef _sig_func_ptr sig_t;
- typedef _sig_func_ptr sighandler_t;
- When enable POSIX_REALTIME_SIGNALS/POSIX_THREADS:
- union sigval {
- int sival_int;
- void *sival_ptr;
- };
- struct sigevent {
- int sigev_notify;
- int sigev_signo;
- union sigval sigev_value;
- void (*sigev_notify_function)( union sigval );
- pthread_attr_t *sigev_notify_attributes;
- };
- typedef struct {
- int si_signo;
- int si_code;
- union sigval si_value;
- } siginfo_t;
- */
- rt_sighandler_t rt_signal_install(int signo, rt_sighandler_t handler);
- void rt_signal_mask(int signo);
- void rt_signal_unmask(int signo);
- int rt_thread_kill(rt_thread_t tid, int sig);
- int rt_system_signal_init(void);
- #ifdef __cplusplus
- }
- #endif
- #endif
|