848cbf3101
- aarch64-support.patch: Support for aarch64 OBS-URL: https://build.opensuse.org/request/show/160296 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libEMF?expand=0&rev=13
96 lines
2.4 KiB
Diff
96 lines
2.4 KiB
Diff
Index: libEMF-1.0.7/include/libEMF/wine/winnt.h
|
|
===================================================================
|
|
--- libEMF-1.0.7.orig/include/libEMF/wine/winnt.h
|
|
+++ libEMF-1.0.7/include/libEMF/wine/winnt.h
|
|
@@ -57,6 +57,10 @@
|
|
# define WORDS_BIGENDIAN
|
|
# define BITFIELDS_BIGENDIAN
|
|
# undef ALLOW_UNALIGNED_ACCESS
|
|
+#elif defined(__aarch64__)
|
|
+# undef WORDS_BIGENDIAN
|
|
+# undef BITFIELDS_BIGENDIAN
|
|
+# undef ALLOW_UNALIGNED_ACCESS
|
|
#elif !defined(RC_INVOKED)
|
|
# error Unknown CPU architecture!
|
|
#endif
|
|
@@ -1425,6 +1429,79 @@ ULONG Cpsr;
|
|
|
|
#endif /* __arm__ */
|
|
|
|
+#ifdef __aarch64__
|
|
+
|
|
+/* These definitions are taken directly from wine
|
|
+ http://source.winehq.org/git/wine.git/blob_plain/HEAD:/include/winnt.h */
|
|
+
|
|
+/*
|
|
+ * FIXME:
|
|
+ *
|
|
+ * There is not yet an official CONTEXT structure defined for the AArch64
|
|
+ * architecture, so I just made one up.
|
|
+ *
|
|
+ */
|
|
+
|
|
+#define CONTEXT_ARM64 0x2000000
|
|
+#define CONTEXT_CONTROL (CONTEXT_ARM64 | 0x00000001)
|
|
+#define CONTEXT_INTEGER (CONTEXT_ARM64 | 0x00000002)
|
|
+#define CONTEXT_FLOATING_POINT (CONTEXT_ARM64 | 0x00000004)
|
|
+#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008)
|
|
+
|
|
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
|
|
+
|
|
+#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 X0;
|
|
+ ULONGLONG X1;
|
|
+ ULONGLONG X2;
|
|
+ ULONGLONG X3;
|
|
+ ULONGLONG X4;
|
|
+ ULONGLONG X5;
|
|
+ ULONGLONG X6;
|
|
+ ULONGLONG X7;
|
|
+ ULONGLONG X8;
|
|
+ ULONGLONG X9;
|
|
+ ULONGLONG X10;
|
|
+ ULONGLONG X11;
|
|
+ ULONGLONG X12;
|
|
+ ULONGLONG X13;
|
|
+ ULONGLONG X14;
|
|
+ ULONGLONG X15;
|
|
+ ULONGLONG X16;
|
|
+ ULONGLONG X17;
|
|
+ ULONGLONG X18;
|
|
+ ULONGLONG X19;
|
|
+ ULONGLONG X20;
|
|
+ ULONGLONG X21;
|
|
+ ULONGLONG X22;
|
|
+ ULONGLONG X23;
|
|
+ ULONGLONG X24;
|
|
+ ULONGLONG X25;
|
|
+ ULONGLONG X26;
|
|
+ ULONGLONG X27;
|
|
+ ULONGLONG X28;
|
|
+ ULONGLONG X29;
|
|
+ ULONGLONG X30;
|
|
+
|
|
+ /* These are selected by CONTEXT_CONTROL */
|
|
+ ULONGLONG Sp;
|
|
+ ULONGLONG Pc;
|
|
+ ULONGLONG PState;
|
|
+
|
|
+ /* These are selected by CONTEXT_FLOATING_POINT */
|
|
+ /* FIXME */
|
|
+} CONTEXT;
|
|
+
|
|
+#endif /* __aarch64__ */
|
|
+
|
|
#if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
|
|
#error You need to define a CONTEXT for your CPU
|
|
#endif
|