Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 1 | From 91e15627fd05d5a59fd2b88bc5c3491d3e0b56b0 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Mon, 14 Mar 2022 09:58:21 -0700 |
| 4 | Subject: [PATCH] ppc: Include asm/ptrace.h for pt_regs struct definition |
| 5 | MIME-Version: 1.0 |
| 6 | Content-Type: text/plain; charset=UTF-8 |
| 7 | Content-Transfer-Encoding: 8bit |
| 8 | |
| 9 | Fixes |
| 10 | ../qemu-6.2.0/linux-user/host/ppc64/../ppc/host-signal.h:16:32: error: incomplete definition of type 'struct pt_regs' |
| 11 | return uc->uc_mcontext.regs->nip; |
| 12 | ~~~~~~~~~~~~~~~~~~~~^ |
| 13 | |
| 14 | Upstream-Status: Submitted [https://patchwork.kernel.org/project/qemu-devel/patch/20220314170223.554679-1-raj.khem@gmail.com/] |
| 15 | |
| 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 17 | Cc: Peter Maydell <peter.maydell@linaro.org> |
| 18 | Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> |
| 19 | Cc: Richard Henderson <richard.henderson@linaro.org> |
| 20 | --- |
| 21 | linux-user/include/host/ppc/host-signal.h | 4 ++++ |
| 22 | 1 file changed, 4 insertions(+) |
| 23 | |
| 24 | --- a/linux-user/host/ppc/host-signal.h |
| 25 | +++ /dev/null |
| 26 | @@ -1,30 +0,0 @@ |
| 27 | -/* |
| 28 | - * host-signal.h: signal info dependent on the host architecture |
| 29 | - * |
| 30 | - * Copyright (c) 2003-2005 Fabrice Bellard |
| 31 | - * Copyright (c) 2021 Linaro Limited |
| 32 | - * |
| 33 | - * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. |
| 34 | - * See the COPYING file in the top-level directory. |
| 35 | - */ |
| 36 | - |
| 37 | -#ifndef PPC_HOST_SIGNAL_H |
| 38 | -#define PPC_HOST_SIGNAL_H |
| 39 | - |
| 40 | -static inline uintptr_t host_signal_pc(ucontext_t *uc) |
| 41 | -{ |
| 42 | - return uc->uc_mcontext.regs->nip; |
| 43 | -} |
| 44 | - |
| 45 | -static inline void host_signal_set_pc(ucontext_t *uc, uintptr_t pc) |
| 46 | -{ |
| 47 | - uc->uc_mcontext.regs->nip = pc; |
| 48 | -} |
| 49 | - |
| 50 | -static inline bool host_signal_write(siginfo_t *info, ucontext_t *uc) |
| 51 | -{ |
| 52 | - return uc->uc_mcontext.regs->trap != 0x400 |
| 53 | - && (uc->uc_mcontext.regs->dsisr & 0x02000000); |
| 54 | -} |
| 55 | - |
| 56 | -#endif |
| 57 | --- a/linux-user/host/ppc64/host-signal.h |
| 58 | +++ b/linux-user/host/ppc64/host-signal.h |
| 59 | @@ -1 +1,32 @@ |
| 60 | -#include "../ppc/host-signal.h" |
| 61 | +/* |
| 62 | + * host-signal.h: signal info dependent on the host architecture |
| 63 | + * |
| 64 | + * Copyright (c) 2003-2005 Fabrice Bellard |
| 65 | + * Copyright (c) 2021 Linaro Limited |
| 66 | + * |
| 67 | + * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. |
| 68 | + * See the COPYING file in the top-level directory. |
| 69 | + */ |
| 70 | + |
| 71 | +#ifndef PPC_HOST_SIGNAL_H |
| 72 | +#define PPC_HOST_SIGNAL_H |
| 73 | + |
| 74 | +#include <asm/ptrace.h> |
| 75 | + |
| 76 | +static inline uintptr_t host_signal_pc(ucontext_t *uc) |
| 77 | +{ |
| 78 | + return uc->uc_mcontext.gp_regs[PT_NIP]; |
| 79 | +} |
| 80 | + |
| 81 | +static inline void host_signal_set_pc(ucontext_t *uc, uintptr_t pc) |
| 82 | +{ |
| 83 | + uc->uc_mcontext.gp_regs[PT_NIP] = pc; |
| 84 | +} |
| 85 | + |
| 86 | +static inline bool host_signal_write(siginfo_t *info, ucontext_t *uc) |
| 87 | +{ |
| 88 | + return uc->uc_mcontext.gp_regs[PT_TRAP] != 0x400 |
| 89 | + && (uc->uc_mcontext.gp_regs[PT_DSISR] & 0x02000000); |
| 90 | +} |
| 91 | + |
| 92 | +#endif |