blob: e8e42007dfe455eb25f5d2fb961c4650508dd87b [file] [log] [blame]
Andrew Geissler9aee5002022-03-30 16:27:02 +00001From 91e15627fd05d5a59fd2b88bc5c3491d3e0b56b0 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 14 Mar 2022 09:58:21 -0700
4Subject: [PATCH] ppc: Include asm/ptrace.h for pt_regs struct definition
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Fixes
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
14Upstream-Status: Submitted [https://patchwork.kernel.org/project/qemu-devel/patch/20220314170223.554679-1-raj.khem@gmail.com/]
15
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Cc: Peter Maydell <peter.maydell@linaro.org>
18Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
19Cc: 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