On 8.01.2025 14:49, Martin Storsjö wrote:
On Mon, 6 Jan 2025, Jacek Caban wrote:
This is necessary to accommodate ARM64EC, under which CONTEXT refers
to the
X86_64 context structure but the regular ARM64 context structure is
still
exposed as ARM64_NT_CONTEXT.
Based on patch by Billy Laws.
Signed-off-by: Jacek Caban <ja...@codeweavers.com>
---
mingw-w64-headers/include/winnt.h | 98 +++++++++++++++++++++----------
1 file changed, 68 insertions(+), 30 deletions(-)
In addititon to exposing the existing things, this also adds a few new
things:
+#define CONTEXT_ARM64_X18 (CONTEXT_ARM64 | 0x00000010)
+#define CONTEXT_ARM64_UNWOUND_TO_CALL 0x20000000
+#define CONTEXT_UNWOUND_TO_CALL CONTEXT_ARM64_UNWOUND_TO_CALL
+#define CONTEXT_EXCEPTION_ACTIVE 0x08000000
+#define CONTEXT_SERVICE_ACTIVE 0x10000000
+#define CONTEXT_EXCEPTION_REQUEST 0x40000000
+#define CONTEXT_EXCEPTION_REPORTING 0x80000000
These obviously are fine, but it would be nice to call it out in the
commit message.
I will split it out for clarity (I already sent a split version, but
it's not yet exactly right, so I will send another one). Also _FULL and
_ALL macros changes should probably go into a separate commit as they
may affect existing applications.
And it seems like it removes duplicate definitions of
EXCEPTION_READ_FAULT/EXCEPTION_WRITE_FAULT/EXCEPTION_EXECUTE_FAULT
(can you verify that this is the case)?
Yes, duplicated ones are just a few lines earlier.
At the end of the diff, I see this:
-#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME
"OutOfProcessFunctionTableCallback"
-
-#endif /* _ARM64_ */
+#ifdef _ARM64_
+ typedef KNONVOLATILE_CONTEXT_POINTERS_ARM64
KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS;
+#endif // _ARM64_
+#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME
"OutOfProcessFunctionTableCallback"
Is there some stray whitespace change here, or I wonder why git didn't
keep the OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME line
untouched in the diff output? Or is it just that lines are moved
around, and the diff algorithm needs to add/remove some lines
somewhere, and picked this one?
It seems to be diff algorithm issue.
Thanks,
Jacek
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public