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

Reply via email to