From: Richard Henderson Date: Thu, 27 Jun 2024 15:13:31 +0000 (+0000) Subject: util/cpuinfo-riscv: Support OpenBSD signal frame X-Git-Tag: v9.1.0-rc0~47^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=adc028428a6da5ea8d6a688085966a33be4c97c7;p=thirdparty%2Fqemu.git util/cpuinfo-riscv: Support OpenBSD signal frame Reported-by: Brad Smith Reviewed-by: Philippe Mathieu-Daudé Acked-by: Daniel Henrique Barboza Acked-by: Alistair Francis Signed-off-by: Richard Henderson --- diff --git a/util/cpuinfo-riscv.c b/util/cpuinfo-riscv.c index 1236ee5fa42..7dcfbee2ab7 100644 --- a/util/cpuinfo-riscv.c +++ b/util/cpuinfo-riscv.c @@ -13,7 +13,14 @@ static void sigill_handler(int signo, siginfo_t *si, void *data) { /* Skip the faulty instruction */ ucontext_t *uc = (ucontext_t *)data; + +#ifdef __linux__ uc->uc_mcontext.__gregs[REG_PC] += 4; +#elif defined(__OpenBSD__) + uc->sc_sepc += 4; +#else +# error Unsupported OS +#endif got_sigill = 1; }