From: Richard Henderson Date: Thu, 27 Jun 2024 15:13:31 +0000 (+0000) Subject: util/cpuinfo-riscv: Support OpenBSD signal frame X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=adc028428a6da5ea8d6a688085966a33be4c97c7;p=qemu.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 1236ee5fa4..7dcfbee2ab 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; }