Changeset c8bb1633 in mainline for uspace/lib/posix/include/posix/signal.h
- Timestamp:
- 2013-07-10T08:58:49Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3908355, 4c53333
- Parents:
- 30c1b75 (diff), 98abd40 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/include/posix/signal.h
r30c1b75 rc8bb1633 36 36 #define POSIX_SIGNAL_H_ 37 37 38 #ifndef __POSIX_DEF__ 39 #define __POSIX_DEF__(x) x 40 #endif 41 38 42 #include "sys/types.h" 43 #include <posix/ucontext.h> 39 44 40 45 extern void __posix_default_signal_handler(int signo); … … 51 56 #define SIG_IGN ((void (*)(int)) __posix_ignore_signal_handler) 52 57 53 typedef int posix_sig_atomic_t;54 typedef uint32_t posix_sigset_t;55 typedef struct posix_mcontext {56 /* must not be empty to avoid compiler warnings (-pedantic) */57 int dummy;58 } posix_mcontext_t;59 60 union posix_sigval {61 int sival_int;62 void *sival_ptr;63 };64 65 struct posix_sigevent {66 int sigev_notify; /* Notification type. */67 int sigev_signo; /* Signal number. */68 union posix_sigval sigev_value; /* Signal value. */69 void (*sigev_notify_function)(union posix_sigval); /* Notification function. */70 posix_thread_attr_t *sigev_notify_attributes; /* Notification attributes. */71 };72 58 73 59 typedef struct { … … 77 63 int si_errno; 78 64 79 posix_pid_tsi_pid;80 posix_uid_tsi_uid;65 __POSIX_DEF__(pid_t) si_pid; 66 __POSIX_DEF__(uid_t) si_uid; 81 67 void *si_addr; 82 68 int si_status; … … 84 70 long si_band; 85 71 86 union posix_sigvalsi_value;87 } posix_siginfo_t;88 89 struct posix_sigaction{72 union __POSIX_DEF__(sigval) si_value; 73 } __POSIX_DEF__(siginfo_t); 74 75 struct __POSIX_DEF__(sigaction) { 90 76 void (*sa_handler)(int); 91 posix_sigset_tsa_mask;77 __POSIX_DEF__(sigset_t) sa_mask; 92 78 int sa_flags; 93 void (*sa_sigaction)(int, posix_siginfo_t*, void *);79 void (*sa_sigaction)(int, __POSIX_DEF__(siginfo_t) *, void *); 94 80 }; 95 81 96 typedef struct { 97 void *ss_sp; 98 size_t ss_size; 99 int ss_flags; 100 } posix_stack_t; 101 102 typedef struct posix_ucontext { 103 struct posix_ucontext *uc_link; 104 posix_sigset_t uc_sigmask; 105 posix_stack_t uc_stack; 106 posix_mcontext_t uc_mcontext; 107 } posix_ucontext_t; 108 109 /* Values of posix_sigevent::sigev_notify */ 82 83 /* Values of __POSIX_DEF__(sigevent)::sigev_notify */ 110 84 #undef SIGEV_NONE 111 85 #undef SIGEV_SIGNAL … … 255 229 }; 256 230 257 extern int posix_sigaction(int sig, const struct posix_sigaction *restrict act, 258 struct posix_sigaction *restrict oact); 259 260 extern void (*posix_signal(int sig, void (*func)(int)))(int); 261 extern int posix_raise(int sig); 262 extern int posix_kill(posix_pid_t pid, int sig); 263 extern int posix_killpg(posix_pid_t pid, int sig); 264 265 extern void posix_psiginfo(const posix_siginfo_t *pinfo, const char *message); 266 extern void posix_psignal(int signum, const char *message); 267 268 extern int posix_sigemptyset(posix_sigset_t *set); 269 extern int posix_sigfillset(posix_sigset_t *set); 270 extern int posix_sigaddset(posix_sigset_t *set, int signo); 271 extern int posix_sigdelset(posix_sigset_t *set, int signo); 272 extern int posix_sigismember(const posix_sigset_t *set, int signo); 273 274 extern int posix_thread_sigmask(int how, const posix_sigset_t *restrict set, 275 posix_sigset_t *restrict oset); 276 extern int posix_sigprocmask(int how, const posix_sigset_t *restrict set, 277 posix_sigset_t *restrict oset); 278 279 #ifndef LIBPOSIX_INTERNAL 280 #define sig_atomic_t posix_sig_atomic_t 281 #define sigset_t posix_sigset_t 282 #define sigval posix_sigval 283 #ifndef sigevent 284 #define sigevent posix_sigevent 285 #endif 286 #define mcontext_t posix_mcontext_t 287 #define ucontext_t posix_ucontext_t 288 #define stack_t posix_stack_t 289 #define siginfo_t posix_siginfo_t 290 291 #define sigaction posix_sigaction 292 293 #define signal posix_signal 294 #define raise posix_raise 295 #define kill posix_kill 296 #define killpg posix_killpg 297 298 #define psiginfo posix_psiginfo 299 #define psignal posix_psignal 300 301 #define sigemptyset posix_sigemptyset 302 #define sigfillset posix_sigfillset 303 #define sigaddset posix_sigaddset 304 #define sigdelset posix_sigdelset 305 #define sigismember posix_sigismember 306 307 #define pthread_sigmask posix_thread_sigmask 308 #define sigprocmask posix_sigprocmask 309 #endif 231 extern int __POSIX_DEF__(sigaction)(int sig, const struct __POSIX_DEF__(sigaction) *restrict act, 232 struct __POSIX_DEF__(sigaction) *restrict oact); 233 234 extern void (*__POSIX_DEF__(signal)(int sig, void (*func)(int)))(int); 235 extern int __POSIX_DEF__(raise)(int sig); 236 extern int __POSIX_DEF__(kill)(__POSIX_DEF__(pid_t) pid, int sig); 237 extern int __POSIX_DEF__(killpg)(__POSIX_DEF__(pid_t) pid, int sig); 238 239 extern void __POSIX_DEF__(psiginfo)(const __POSIX_DEF__(siginfo_t) *pinfo, const char *message); 240 extern void __POSIX_DEF__(psignal)(int signum, const char *message); 241 242 extern int __POSIX_DEF__(sigemptyset)(__POSIX_DEF__(sigset_t) *set); 243 extern int __POSIX_DEF__(sigfillset)(__POSIX_DEF__(sigset_t) *set); 244 extern int __POSIX_DEF__(sigaddset)(__POSIX_DEF__(sigset_t) *set, int signo); 245 extern int __POSIX_DEF__(sigdelset)(__POSIX_DEF__(sigset_t) *set, int signo); 246 extern int __POSIX_DEF__(sigismember)(const __POSIX_DEF__(sigset_t) *set, int signo); 247 248 extern int __POSIX_DEF__(thread_sigmask)(int how, const __POSIX_DEF__(sigset_t) *restrict set, 249 __POSIX_DEF__(sigset_t) *restrict oset); 250 extern int __POSIX_DEF__(sigprocmask)(int how, const __POSIX_DEF__(sigset_t) *restrict set, 251 __POSIX_DEF__(sigset_t) *restrict oset); 252 310 253 311 254 #endif /* POSIX_SIGNAL_H_ */
Note:
See TracChangeset
for help on using the changeset viewer.