diff options
Diffstat (limited to 'include/linux/signal.h')
| -rw-r--r-- | include/linux/signal.h | 15 | 
1 files changed, 7 insertions, 8 deletions
diff --git a/include/linux/signal.h b/include/linux/signal.h index 042968dd98f0..a9bc7e1b077e 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -11,13 +11,14 @@ struct task_struct;  /* for sysctl */  extern int print_fatal_signals; -static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) +static inline void copy_siginfo(struct siginfo *to, const struct siginfo *from)  { -	if (from->si_code < 0) -		memcpy(to, from, sizeof(*to)); -	else -		/* _sigchld is currently the largest know union member */ -		memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld)); +	memcpy(to, from, sizeof(*to)); +} + +static inline void clear_siginfo(struct siginfo *info) +{ +	memset(info, 0, sizeof(*info));  }  int copy_siginfo_to_user(struct siginfo __user *to, const struct siginfo *from); @@ -29,9 +30,7 @@ enum siginfo_layout {  	SIL_FAULT,  	SIL_CHLD,  	SIL_RT, -#ifdef __ARCH_SIGSYS  	SIL_SYS, -#endif  };  enum siginfo_layout siginfo_layout(int sig, int si_code);  |