From: Christian Brauner Date: Tue, 2 Nov 2021 09:42:09 +0000 (+0100) Subject: process_utils: add signal_name() helper X-Git-Tag: lxc-4.0.12~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4915c91128c8609805c06f438cdb8f3502dea044;p=thirdparty%2Flxc.git process_utils: add signal_name() helper Signed-off-by: Christian Brauner --- diff --git a/configure.ac b/configure.ac index fbd601a24..22ea9e129 100644 --- a/configure.ac +++ b/configure.ac @@ -697,7 +697,7 @@ AM_COND_IF([ENABLE_LIBURING], AC_HEADER_MAJOR # Check for some syscalls functions -AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat gettid memfd_create move_mount open_tree execveat clone3 fsopen fspick fsconfig fsmount openat2 close_range statvfs mount_setattr]) +AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat gettid memfd_create move_mount open_tree execveat clone3 fsopen fspick fsconfig fsmount openat2 close_range statvfs mount_setattr sigdescr_np]) AC_CHECK_TYPES([__aligned_u64], [], [], [[#include ]]) AC_CHECK_TYPES([struct mount_attr], [], [], [[#include ]]) AC_CHECK_TYPES([struct open_how], [], [], [[#include ]]) diff --git a/meson.build b/meson.build index 2dbe9e03f..19b3abbc1 100644 --- a/meson.build +++ b/meson.build @@ -266,6 +266,7 @@ foreach ident : [ ['setmntent', '''#include #include '''], ['setns', '''#include '''], + ['sigdescr_np', '''#include '''], ['signalfd', '''#include '''], ['statx', '''#include #include @@ -467,6 +468,7 @@ foreach tuple : [ ['sethostname'], ['setmntent'], ['setns'], + ['sigdescr_np'], ['signalfd'], ['statx'], ['strlcat'], diff --git a/src/lxc/process_utils.h b/src/lxc/process_utils.h index 2eb9e5152..9c15b1574 100644 --- a/src/lxc/process_utils.h +++ b/src/lxc/process_utils.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -286,4 +287,16 @@ static inline pid_t lxc_raw_gettid(void) __hidden extern int lxc_raw_pidfd_send_signal(int pidfd, int sig, siginfo_t *info, unsigned int flags); +static inline const char *signal_name(int sig) +{ + const char *s; + +#if HAVE_SIGDESCR_NP + s = sigdescr_np(sig); +#else + s = "UNSUPPORTED"; +#endif + return s ?: "INVALID_SIGNAL_NUMBER"; +} + #endif /* __LXC_PROCESS_UTILS_H */