Branch data Line data Source code
1 : : #ifndef _ASM_GENERIC_SIGINFO_H
2 : : #define _ASM_GENERIC_SIGINFO_H
3 : :
4 : : #include <uapi/asm-generic/siginfo.h>
5 : :
6 : : #define __SI_MASK 0xffff0000u
7 : : #define __SI_KILL (0 << 16)
8 : : #define __SI_TIMER (1 << 16)
9 : : #define __SI_POLL (2 << 16)
10 : : #define __SI_FAULT (3 << 16)
11 : : #define __SI_CHLD (4 << 16)
12 : : #define __SI_RT (5 << 16)
13 : : #define __SI_MESGQ (6 << 16)
14 : : #define __SI_SYS (7 << 16)
15 : : #define __SI_CODE(T,N) ((T) | ((N) & 0xffff))
16 : :
17 : : struct siginfo;
18 : : void do_schedule_next_timer(struct siginfo *info);
19 : :
20 : : #ifndef HAVE_ARCH_COPY_SIGINFO
21 : :
22 : : #include <linux/string.h>
23 : :
24 : : static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
25 : : {
26 [ + + ][ + + ]: 2646530 : if (from->si_code < 0)
27 : 2447226 : memcpy(to, from, sizeof(*to));
28 : : else
29 : : /* _sigchld is currently the largest know union member */
30 : 199304 : memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
31 : : }
32 : :
33 : : #endif
34 : :
35 : : extern int copy_siginfo_to_user(struct siginfo __user *to, const struct siginfo *from);
36 : :
37 : : #endif
|