00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _POSIX_SIG_H
00021 #define _POSIX_SIG_H
00022
00023 #include <posix/thread.h>
00024
00025 #define SIGACTION_FLAGS (SA_ONESHOT|SA_NOMASK|SA_SIGINFO)
00026
00027 typedef struct {
00028 siginfo_t info;
00029 xnpholder_t link;
00030
00031 #define link2siginfo(iaddr) \
00032 ((pse51_siginfo_t *)(((char *)iaddr) - offsetof(pse51_siginfo_t, link)))
00033
00034 } pse51_siginfo_t;
00035
00036
00037
00038 int pse51_sigqueue_inner(pthread_t thread, pse51_siginfo_t *si);
00039
00040 void pse51_sigunqueue(pthread_t thread, pse51_siginfo_t *si);
00041
00042 void pse51_signal_init_thread(pthread_t new, const pthread_t parent);
00043
00044 void pse51_signal_cleanup_thread(pthread_t zombie);
00045
00046 void pse51_signal_handle_request(pthread_t thread);
00047
00048 void pse51_signal_pkg_init(void);
00049
00050 void pse51_signal_pkg_cleanup(void);
00051
00052 #endif