2ff55486c6
Add missing RISC-V specific bits to winnt.h to make the build succeed. These bits are custom written stubs. PR: 267395 Approved by: maintainer timeout
85 lines
2 KiB
C
85 lines
2 KiB
C
--- include/libEMF/wine/winnt.h.orig 2022-10-27 16:15:39 UTC
|
|
+++ include/libEMF/wine/winnt.h
|
|
@@ -69,6 +69,10 @@
|
|
# define WORDS_BIGENDIAN
|
|
# define BITFIELDS_BIGENDIAN
|
|
# undef ALLOW_UNALIGNED_ACCESS
|
|
+#elif defined(__riscv)
|
|
+# undef WORDS_BIGENDIAN
|
|
+# undef BITFIELDS_BIGENDIAN
|
|
+# define ALLOW_UNALIGNED_ACCESS
|
|
#elif !defined(RC_INVOKED)
|
|
# error Unknown CPU architecture!
|
|
#endif
|
|
@@ -1581,6 +1585,71 @@ typedef struct _CONTEXT {
|
|
} CONTEXT;
|
|
|
|
#endif /* __e2k__ */
|
|
+
|
|
+#if __riscv_xlen == 64
|
|
+/*
|
|
+ * FIXME:
|
|
+ *
|
|
+ * There is not yet an official CONTEXT structure defined for
|
|
+ * RV64, so I just made one up.
|
|
+ *
|
|
+ */
|
|
+
|
|
+#define CONTEXT_RV64 0x4000000
|
|
+#define CONTEXT_CONTROL (CONTEXT_RV64 | 0x00000001)
|
|
+#define CONTEXT_INTEGER (CONTEXT_RV64 | 0x00000002)
|
|
+#define CONTEXT_FLOATING_POINT (CONTEXT_RV64 | 0x00000004)
|
|
+
|
|
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
|
|
+
|
|
+#define EXCEPTION_READ_FAULT 0
|
|
+#define EXCEPTION_WRITE_FAULT 1
|
|
+#define EXCEPTION_EXECUTE_FAULT 8
|
|
+
|
|
+typedef struct _CONTEXT {
|
|
+ ULONG ContextFlags;
|
|
+
|
|
+ /* This section is specified/returned if the ContextFlags word contains
|
|
+ the flag CONTEXT_INTEGER. */
|
|
+ ULONGLONG R1;
|
|
+ ULONGLONG R2;
|
|
+ ULONGLONG R3;
|
|
+ ULONGLONG R4;
|
|
+ ULONGLONG R5;
|
|
+ ULONGLONG R6;
|
|
+ ULONGLONG R7;
|
|
+ ULONGLONG R8;
|
|
+ ULONGLONG R9;
|
|
+ ULONGLONG R10;
|
|
+ ULONGLONG R12;
|
|
+ ULONGLONG R13;
|
|
+ ULONGLONG R14;
|
|
+ ULONGLONG R15;
|
|
+ ULONGLONG R16;
|
|
+ ULONGLONG R17;
|
|
+ ULONGLONG R18;
|
|
+ ULONGLONG R19;
|
|
+ ULONGLONG R20;
|
|
+ ULONGLONG R21;
|
|
+ ULONGLONG R22;
|
|
+ ULONGLONG R23;
|
|
+ ULONGLONG R24;
|
|
+ ULONGLONG R25;
|
|
+ ULONGLONG R26;
|
|
+ ULONGLONG R27;
|
|
+ ULONGLONG R28;
|
|
+ ULONGLONG R29;
|
|
+ ULONGLONG R30;
|
|
+ ULONGLONG R31;
|
|
+
|
|
+ /* These are selected by CONTEXT_CONTROL */
|
|
+ ULONGLONG Pc;
|
|
+
|
|
+ /* These are selected by CONTEXT_FLOATING_POINT */
|
|
+
|
|
+} CONTEXT;
|
|
+
|
|
+#endif /* __riscv */
|
|
|
|
#if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
|
|
#error You need to define a CONTEXT for your CPU
|