forked from phoenix-rtos/libphoenix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsignal.h
170 lines (107 loc) · 2.6 KB
/
signal.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/*
* Phoenix-RTOS
*
* libphoenix
*
* signal.h
*
* Copyright 2018 Phoenix Systems
* Author: Jan Sikorski, Aleksander Kaminski
*
* This file is part of Phoenix-RTOS.
*
* %LICENSE%
*/
#ifndef _LIBPHOENIX_SIGNAL_H_
#define _LIBPHOENIX_SIGNAL_H_
#include <sys/types.h>
#include <time.h>
typedef void (*sighandler_t)(int);
#define SIGHUP 1
#define SIGINT 2
#define SIGQUIT 3
#define SIGILL 4
#define SIGTRAP 5
#define SIGABRT 6
#define SIGIOT SIGABRT
#define SIGEMT 7
#define SIGFPE 8
#define SIGKILL 9
#define SIGBUS 10
#define SIGSEGV 11
#define SIGSYS 12
#define SIGPIPE 13
#define SIGALRM 14
#define SIGTERM 15
#define SIGURG 16
#define SIGSTOP 17
#define SIGTSTP 18
#define SIGCONT 19
#define SIGCHLD 20
#define SIGTTIN 21
#define SIGTTOU 22
#define SIGIO 23
#define SIGXCPU 24
#define SIGXFSZ 25
#define SIGVTALRM 26
#define SIGPROF 27
#define SIGWINCH 28
#define SIGINFO 29
#define SIGUSR1 30
#define SIGUSR2 31
#define NSIG 32
#define SIG_ERR ((sighandler_t)-1)
#define SIG_DFL ((sighandler_t)-2)
#define SIG_IGN ((sighandler_t)-3)
enum { SIG_BLOCK, SIG_SETMASK, SIG_UNBLOCK };
#define SA_NOCLDSTOP 1 << 0
#define SA_NOCLDWAIT 1 << 1
#define SA_NODEFER 1 << 2
#define SA_ONSTACK 1 << 3
#define SA_RESETHAND 1 << 4
#define SA_RESTART 1 << 5
#define SA_RESTORER 1 << 6
#define SA_SIGINFO 1 << 7
typedef int sigset_t;
typedef int sig_atomic_t;
union sigval {
int sival_int;
void *sival_ptr;
};
typedef struct {
int si_signo;
int si_code;
pid_t si_pid;
uid_t si_uid;
void *si_addr;
int si_status;
union sigval si_value;
} siginfo_t;
struct sigaction {
void (*sa_handler) (int);
sigset_t sa_mask;
int sa_flags;
void (*sa_sigaction) (int, siginfo_t *, void *);
};
extern void (*bsd_signal(int, void (*)(int)))(int);
extern int kill(pid_t, int);
extern int killpg(pid_t, int);
extern int raise(int);
extern int sigaction(int, const struct sigaction *, struct sigaction *);
extern int sigaddset(sigset_t *, int);
extern int sigdelset(sigset_t *, int);
extern int sigemptyset(sigset_t *);
extern int sigfillset(sigset_t *);
extern int sighold(int);
extern int sigignore(int);
extern int siginterrupt(int, int);
extern int sigismember(const sigset_t *, int);
extern void (*signal(int, void (*)(int)))(int);
extern int sigpause(int);
extern int sigpending(sigset_t *);
extern int sigprocmask(int, const sigset_t *, sigset_t *);
extern int sigrelse(int);
extern void (*sigset(int, void (*)(int)))(int);
extern int sigsuspend(const sigset_t *);
extern int sigwait(const sigset_t *, int *);
#endif