blob: f071e813dcb3c21d5110ecee08d57a2e7fcf26db [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _ASM_SIGNAL_H
2#define _ASM_SIGNAL_H
3
4#include <linux/types.h>
5
David Howells5c55b402009-06-13 13:23:54 +01006#ifndef __KERNEL__
Linus Torvalds1da177e2005-04-16 15:20:36 -07007/* Here we must cater to libcs that poke about in kernel headers. */
8
9#define NSIG 32
10typedef unsigned long sigset_t;
11
David Howells5c55b402009-06-13 13:23:54 +010012#endif /* !__KERNEL__ */
Linus Torvalds1da177e2005-04-16 15:20:36 -070013
David Howells5c55b402009-06-13 13:23:54 +010014#define SA_RESTORER 0x04000000 /* to get struct sigaction correct */
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
Al Virob1ecb4c2005-05-04 05:40:12 +010016#include <asm-generic/signal.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070017
18#ifdef __KERNEL__
19struct old_sigaction {
20 __sighandler_t sa_handler;
21 old_sigset_t sa_mask;
22 unsigned long sa_flags;
Al Viro9e4d11f2006-06-23 02:04:04 -070023 __sigrestore_t sa_restorer;
Linus Torvalds1da177e2005-04-16 15:20:36 -070024};
25
Linus Torvalds1da177e2005-04-16 15:20:36 -070026#else
27/* Here we must cater to libcs that poke about in kernel headers. */
28
29struct sigaction {
30 union {
31 __sighandler_t _sa_handler;
32 void (*_sa_sigaction)(int, struct siginfo *, void *);
33 } _u;
34 sigset_t sa_mask;
35 unsigned long sa_flags;
36 void (*sa_restorer)(void);
37};
38
39#define sa_handler _u._sa_handler
40#define sa_sigaction _u._sa_sigaction
41
42#endif /* __KERNEL__ */
43
Linus Torvalds1da177e2005-04-16 15:20:36 -070044#endif /* _ASM_SIGNAL_H */