Changes in uspace/lib/posix/signal.h [3f466c33:1a552fd] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/signal.h
r3f466c33 r1a552fd 39 39 #include "sys/types.h" 40 40 41 extern void __posix_default_signal_handler(int signo); 42 extern void __posix_hold_signal_handler(int signo); 43 extern void __posix_ignore_signal_handler(int signo); 41 /* HelenOS doesn't have signals, so calls to functions of this header 42 * are just replaced with their respective failure return value. 43 * 44 * Other macros and constants are here just to satisfy the symbol resolver 45 * and have no practical value whatsoever, until HelenOS implements some 46 * equivalent of signals. Maybe something neat based on IPC will be devised 47 * in the future? 48 */ 44 49 45 50 #undef SIG_DFL 46 #define SIG_DFL ((void (*)(int)) __posix_default_signal_handler)51 #define SIG_DFL ((void (*)(int)) 0) 47 52 #undef SIG_ERR 48 #define SIG_ERR ((void (*)(int)) NULL)53 #define SIG_ERR ((void (*)(int)) 0) 49 54 #undef SIG_HOLD 50 #define SIG_HOLD ((void (*)(int)) __posix_hold_signal_handler)55 #define SIG_HOLD ((void (*)(int)) 0) 51 56 #undef SIG_IGN 52 #define SIG_IGN ((void (*)(int)) __posix_ignore_signal_handler) 57 #define SIG_IGN ((void (*)(int)) 0) 58 59 #define signal(sig,func) (errno = ENOTSUP, SIG_ERR) 60 #define raise(sig) ((int) -1) 61 #define kill(pid,sig) (errno = ENOTSUP, (int) -1) 53 62 54 63 typedef int posix_sig_atomic_t; 55 typedef uint32_t posix_sigset_t;64 typedef int posix_sigset_t; 56 65 typedef struct posix_mcontext { 57 66 // FIXME: should not be empty to avoid compiler warnings (-pedantic) … … 78 87 int si_errno; 79 88 80 p osix_pid_t si_pid;81 posix_uid_t si_uid;89 pid_t si_pid; 90 uid_t si_uid; 82 91 void *si_addr; 83 92 int si_status; … … 111 120 /* Values of posix_sigevent::sigev_notify */ 112 121 #undef SIGEV_NONE 122 #define SIGEV_NONE 0 113 123 #undef SIGEV_SIGNAL 124 #define SIGEV_SIGNAL 0 114 125 #undef SIGEV_THREAD 115 #define SIGEV_NONE 0116 #define SIGEV_SIGNAL 0117 126 #define SIGEV_THREAD 0 118 127 119 128 #undef SIGRT_MIN 129 #define SIGRT_MIN 0 120 130 #undef SIGRT_MAX 121 #define SIGRT_MIN 0122 131 #define SIGRT_MAX 0 123 132 124 133 #undef SIG_BLOCK 134 #define SIG_BLOCK 0 125 135 #undef SIG_UNBLOCK 136 #define SIG_UNBLOCK 0 126 137 #undef SIG_SETMASK 127 #define SIG_BLOCK 0 128 #define SIG_UNBLOCK 1 129 #define SIG_SETMASK 2 138 #define SIG_SETMASK 0 130 139 131 140 #undef SA_NOCLDSTOP 141 #define SA_NOCLDSTOP 0 132 142 #undef SA_ONSTACK 143 #define SA_ONSTACK 0 133 144 #undef SA_RESETHAND 145 #define SA_RESETHAND 0 134 146 #undef SA_RESTART 147 #define SA_RESTART 0 135 148 #undef SA_SIGINFO 149 #define SA_SIGINFO 0 136 150 #undef SA_NOCLDWAIT 151 #define SA_NOCLDWAIT 0 137 152 #undef SA_NODEFER 138 #define SA_NOCLDSTOP (1 << 0) 139 #define SA_ONSTACK (1 << 1) 140 #define SA_RESETHAND (1 << 2) 141 #define SA_RESTART (1 << 3) 142 #define SA_SIGINFO (1 << 4) 143 #define SA_NOCLDWAIT (1 << 5) 144 #define SA_NODEFER (1 << 6) 153 #define SA_NODEFER 0 145 154 146 155 #undef SS_ONSTACK 156 #define SS_ONSTACK 0 147 157 #undef SS_DISABLE 148 #define SS_ONSTACK 0149 158 #define SS_DISABLE 0 150 159 151 160 #undef MINSIGSTKSZ 161 #define MINSIGSTKSZ 0 152 162 #undef SIGSTKSZ 153 #define MINSIGSTKSZ 0154 163 #define SIGSTKSZ 0 155 164 156 165 /* full POSIX set */ 157 166 enum { 158 /* Termination Signals */159 167 SIGABRT, 168 SIGALRM, 169 SIGBUS, 170 SIGCHLD, 171 SIGCONT, 172 SIGFPE, 173 SIGHUP, 174 SIGILL, 175 SIGINT, 176 SIGKILL, 177 SIGPIPE, 160 178 SIGQUIT, 161 SIGINT, 179 SIGSEGV, 180 SIGSTOP, 162 181 SIGTERM, 163 164 /* Child Signal */165 SIGCHLD,166 167 /* User signals */168 SIGUSR1,169 SIGUSR2,170 171 /* Timer */172 SIGALRM,173 SIGVTALRM,174 SIGPROF, /* obsolete */175 176 _TOP_CATCHABLE_SIGNAL = SIGPROF,177 178 /* Process Scheduler Interaction - not supported */179 SIGSTOP,180 SIGCONT,181 182 /* Process Termination - can't be caught */183 SIGKILL,184 185 _TOP_SENDABLE_SIGNAL = SIGKILL,186 187 /* Hardware Exceptions - can't be caught or sent */188 SIGFPE,189 SIGBUS,190 SIGILL,191 SIGSEGV,192 193 /* Other Exceptions - not supported */194 SIGSYS,195 SIGXCPU,196 SIGXFSZ,197 198 /* Debugging - not supported */199 SIGTRAP,200 201 /* Communication Signals - not supported */202 SIGHUP,203 SIGPIPE,204 SIGPOLL, /* obsolete */205 SIGURG,206 207 /* Terminal Signals - not supported */208 182 SIGTSTP, 209 183 SIGTTIN, 210 184 SIGTTOU, 211 212 _TOP_SIGNAL = SIGTTOU 213 }; 214 215 /* Values for sigaction field si_code. */ 216 217 enum { 218 SI_USER, 219 SI_QUEUE, 220 SI_TIMER, 221 SI_ASYNCIO, 222 SI_MESGQ, 223 ILL_ILLOPC, 224 ILL_ILLOPN, 225 ILL_ILLADR, 226 ILL_ILLTRP, 227 ILL_PRVOPC, 228 ILL_PRVREG, 229 ILL_COPROC, 230 ILL_BADSTK, 231 FPE_INTDIV, 232 FPE_INTOVF, 233 FPE_FLTDIV, 234 FPE_FLTOVF, 235 FPE_FLTUND, 236 FPE_FLTRES, 237 FPE_FLTINV, 238 FPE_FLTSUB, 239 SEGV_MAPERR, 240 SEGV_ACCERR, 241 BUS_ADRALN, 242 BUS_ADRERR, 243 BUS_OBJERR, 244 TRAP_BRKPT, 245 TRAP_TRACE, 246 CLD_EXITED, 247 CLD_KILLED, 248 CLD_DUMPED, 249 CLD_TRAPPED, 250 CLD_STOPPED, 251 CLD_CONTINUED, 252 POLL_IN, 253 POLL_OUT, 254 POLL_MSG, 255 POLL_ERR, 256 POLL_PRI, 257 POLL_HUP 258 }; 259 260 extern int posix_sigaction(int sig, const struct posix_sigaction *restrict act, 261 struct posix_sigaction *restrict oact); 262 263 extern void (*posix_signal(int sig, void (*func)(int)))(int); 264 extern int posix_raise(int sig); 265 extern int posix_kill(posix_pid_t pid, int sig); 266 extern int posix_killpg(posix_pid_t pid, int sig); 267 268 extern void posix_psiginfo(const posix_siginfo_t *pinfo, const char *message); 269 extern void posix_psignal(int signum, const char *message); 270 185 SIGUSR1, 186 SIGUSR2, 187 SIGPOLL, 188 SIGPROF, 189 SIGSYS, 190 SIGTRAP, 191 SIGURG, 192 SIGVTALRM, 193 SIGXCPU, 194 SIGXFSZ 195 }; 196 197 /* Just declared to avoid compiler warnings. */ 271 198 extern int posix_sigemptyset(posix_sigset_t *set); 272 extern int posix_sigfillset(posix_sigset_t *set);273 extern int posix_sigaddset(posix_sigset_t *set, int signo);274 extern int posix_sigdelset(posix_sigset_t *set, int signo);275 extern int posix_sigismember(const posix_sigset_t *set, int signo);276 277 extern int posix_thread_sigmask(int how, const posix_sigset_t *restrict set,278 posix_sigset_t *restrict oset);279 199 extern int posix_sigprocmask(int how, const posix_sigset_t *restrict set, 280 200 posix_sigset_t *restrict oset); … … 284 204 #define sigset_t posix_sigset_t 285 205 #define sigval posix_sigval 286 #ifndef sigevent 287 #define sigevent posix_sigevent 288 #endif 206 #define sigevent posix_sigevent 289 207 #define sigaction posix_sigaction 290 208 #define mcontext_t posix_mcontext_t … … 292 210 #define stack_t posix_stack_t 293 211 #define siginfo_t posix_siginfo_t 294 295 #define signal posix_signal296 #define raise posix_raise297 #define kill posix_kill298 #define killpg posix_killpg299 300 #define psiginfo posix_psiginfo301 #define psignal posix_psignal302 303 212 #define sigemptyset posix_sigemptyset 304 #define sigfillset posix_sigfillset305 #define sigaddset posix_sigaddset306 #define sigdelset posix_sigdelset307 #define sigismember posix_sigismember308 309 #define pthread_sigmask posix_thread_sigmask310 213 #define sigprocmask posix_sigprocmask 311 214 #endif
Note:
See TracChangeset
for help on using the changeset viewer.