X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Flinux%2Fsignal.h;h=d80259afb9e5f1b6853650b2656bd01d83f9ac66;hb=b56111f481e16510558a892d5d56cb90cadd96c0;hp=92557bbce7e7b9a3d9c6c6ed4c4d4f54ff7ff9e5;hpb=7a78d9439ae9515a8ed2b97c267e54da92f2def0;p=firefly-linux-kernel-4.4.55.git diff --git a/include/linux/signal.h b/include/linux/signal.h index 92557bbce7e7..d80259afb9e5 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -28,6 +28,21 @@ struct sigpending { sigset_t signal; }; +#ifndef HAVE_ARCH_COPY_SIGINFO + +#include + +static inline void copy_siginfo(struct siginfo *to, 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)); +} + +#endif + /* * Define some primitives to manipulate sigset_t. */