From b45c038a7899e2f396b0d248c22db037d58f3158 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 27 Mar 2025 00:12:03 -0400 Subject: kernel: systm: Add __sigraise() helper Adds routine to raise a signal on the fly for the current calling thread. Signed-off-by: Ian Moffett --- sys/include/sys/systm.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sys/include/sys/systm.h b/sys/include/sys/systm.h index 38327f6..89f196f 100644 --- a/sys/include/sys/systm.h +++ b/sys/include/sys/systm.h @@ -31,10 +31,28 @@ #define _SYS_SYSTM_H_ #include +#include +#include #if defined(_KERNEL) int copyin(const void *uaddr, void *kaddr, size_t len); int copyout(const void *kaddr, void *uaddr, size_t len); int copyinstr(const void *uaddr, char *kaddr, size_t len); + +__always_inline static inline void +__sigraise(int signo) +{ + struct proc *td; + sigset_t sigs; + + td = this_td(); + __assert(td != NULL && "pid 1 not running"); + sigemptyset(&sigs); + + sigaddset(&sigs, signo); + sendsig(td, &sigs); + dispatch_signals(td); +} + #endif /* _KERNEL */ #endif /* !_SYS_SYSTM_H_ */ -- cgit v1.2.3