osdep: Introduce qemu_kill_thread()

Add a function for sending signals to individual threads. It does not make
sense on Windows, so do not provide an implementation, so that if someone
uses it by accident, they will get a linker error.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20250117001542.8290-6-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20250207153112.3939799-15-alex.bennee@linaro.org>
This commit is contained in:
Ilya Leoshkevich 2025-02-07 15:31:09 +00:00 committed by Alex Bennée
parent 2b3ccf5f0d
commit a33dcfe771
2 changed files with 24 additions and 0 deletions

View file

@ -111,6 +111,21 @@ int qemu_get_thread_id(void)
#endif
}
int qemu_kill_thread(int tid, int sig)
{
#if defined(__linux__)
return syscall(__NR_tgkill, getpid(), tid, sig);
#elif defined(__FreeBSD__)
return thr_kill2(getpid(), tid, sig);
#elif defined(__NetBSD__)
return _lwp_kill(tid, sig);
#elif defined(__OpenBSD__)
return thrkill(tid, sig, NULL);
#else
return kill(tid, sig);
#endif
}
int qemu_daemon(int nochdir, int noclose)
{
return daemon(nochdir, noclose);