[PATCH 08/22] include: Add PPC64 context
André Hentschel
nerv at dawncrow.de
Sun Aug 16 14:01:46 CDT 2020
Signed-off-by: André Hentschel <nerv at dawncrow.de>
---
include/winnt.h | 115 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 114 insertions(+), 1 deletion(-)
diff --git a/include/winnt.h b/include/winnt.h
index b102208039a..c8d07c3e328 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -2138,8 +2138,121 @@ typedef struct _CONTEXT
#endif /* _MIPS_ */
+/* PowerPC 64-bit context definitions */
+#ifdef __powerpc64__
+
+#define CONTEXT_POWERPC64 0x00800000
+#define CONTEXT_CONTROL 0x0001
+#define CONTEXT_FLOATING_POINT 0x0002
+#define CONTEXT_INTEGER 0x0004
+#define CONTEXT_DEBUG_REGISTERS 0x0008
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
+#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | \
+ CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
+
+#define EXCEPTION_READ_FAULT 0
+#define EXCEPTION_WRITE_FAULT 1
+#define EXCEPTION_EXECUTE_FAULT 8
+
+typedef struct
+{
+ /* These are selected by CONTEXT_FLOATING_POINT */
+ double Fpr0;
+ double Fpr1;
+ double Fpr2;
+ double Fpr3;
+ double Fpr4;
+ double Fpr5;
+ double Fpr6;
+ double Fpr7;
+ double Fpr8;
+ double Fpr9;
+ double Fpr10;
+ double Fpr11;
+ double Fpr12;
+ double Fpr13;
+ double Fpr14;
+ double Fpr15;
+ double Fpr16;
+ double Fpr17;
+ double Fpr18;
+ double Fpr19;
+ double Fpr20;
+ double Fpr21;
+ double Fpr22;
+ double Fpr23;
+ double Fpr24;
+ double Fpr25;
+ double Fpr26;
+ double Fpr27;
+ double Fpr28;
+ double Fpr29;
+ double Fpr30;
+ double Fpr31;
+ double Fpscr;
+
+ /* These are selected by CONTEXT_INTEGER */
+ DWORD64 Gpr0;
+ DWORD64 Gpr1;
+ DWORD64 Gpr2;
+ DWORD64 Gpr3;
+ DWORD64 Gpr4;
+ DWORD64 Gpr5;
+ DWORD64 Gpr6;
+ DWORD64 Gpr7;
+ DWORD64 Gpr8;
+ DWORD64 Gpr9;
+ DWORD64 Gpr10;
+ DWORD64 Gpr11;
+ DWORD64 Gpr12;
+ DWORD64 Gpr13;
+ DWORD64 Gpr14;
+ DWORD64 Gpr15;
+ DWORD64 Gpr16;
+ DWORD64 Gpr17;
+ DWORD64 Gpr18;
+ DWORD64 Gpr19;
+ DWORD64 Gpr20;
+ DWORD64 Gpr21;
+ DWORD64 Gpr22;
+ DWORD64 Gpr23;
+ DWORD64 Gpr24;
+ DWORD64 Gpr25;
+ DWORD64 Gpr26;
+ DWORD64 Gpr27;
+ DWORD64 Gpr28;
+ DWORD64 Gpr29;
+ DWORD64 Gpr30;
+ DWORD64 Gpr31;
+
+ DWORD64 Cr;
+ DWORD64 Xer;
+
+ /* These are selected by CONTEXT_CONTROL */
+ DWORD64 Msr;
+ DWORD64 Iar; /* Instruction Address Register , aka PC ... */
+ DWORD64 Lr;
+ DWORD64 Ctr;
+
+ DWORD64 ContextFlags;
+
+ DWORD64 Dar; /* Fault registers for coredump */
+ DWORD64 Dsisr;
+ DWORD64 Trap; /* number of powerpc exception taken */
+
+ /* These are selected by CONTEXT_DEBUG_REGISTERS */
+ DWORD64 Dr0;
+ DWORD64 Dr1;
+ DWORD64 Dr2;
+ DWORD64 Dr3;
+ DWORD64 Dr4;
+ DWORD64 Dr5;
+ DWORD64 Dr6;
+ DWORD64 Dr7;
+} CONTEXT, *PCONTEXT;
+
/* PowerPC context definitions */
-#ifdef __powerpc__
+#elif defined(__powerpc__)
#define CONTEXT_CONTROL 0x0001
#define CONTEXT_FLOATING_POINT 0x0002
--
2.25.1
More information about the wine-devel
mailing list