From: Billy Laws <[email protected]>
This structure is the same across every architecture that uses it, so
avoid needlessly duplicating its definition.
Signed-off-by: Jacek Caban <[email protected]>
---
With this series, platform headers are useful on arm64ec target.
mingw-w64-headers/include/winnt.h | 83 +++++++++----------------------
1 file changed, 24 insertions(+), 59 deletions(-)
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
index 2d3190a4a..3fe530f0a 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -2091,24 +2091,6 @@ extern "C" {
#define UNW_FLAG_EHANDLER 0x1
#define UNW_FLAG_UHANDLER 0x2
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
- typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
- DWORD ImageBase;
- PRUNTIME_FUNCTION FunctionEntry;
- } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
- typedef struct _UNWIND_HISTORY_TABLE {
- DWORD Count;
- BYTE LocalHint;
- BYTE GlobalHint;
- BYTE Search;
- BYTE Once;
- DWORD LowAddress;
- DWORD HighAddress;
- UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
- } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
struct _DISPATCHER_CONTEXT;
typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;
typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;
@@ -2122,7 +2104,7 @@ extern "C" {
PCONTEXT ContextRecord;
PEXCEPTION_ROUTINE LanguageHandler;
PVOID HandlerData;
- PUNWIND_HISTORY_TABLE HistoryTable;
+ struct _UNWIND_HISTORY_TABLE *HistoryTable;
ULONG ScopeIndex;
BOOLEAN ControlPcIsUnwound;
PBYTE NonVolatileRegisters;
@@ -2327,24 +2309,6 @@ extern "C" {
#define UNW_FLAG_EHANDLER 0x1
#define UNW_FLAG_UHANDLER 0x2
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
- typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
- DWORD64 ImageBase;
- PRUNTIME_FUNCTION FunctionEntry;
- } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
- typedef struct _UNWIND_HISTORY_TABLE {
- DWORD Count;
- BYTE LocalHint;
- BYTE GlobalHint;
- BYTE Search;
- BYTE Once;
- DWORD64 LowAddress;
- DWORD64 HighAddress;
- UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
- } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
struct _DISPATCHER_CONTEXT;
typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;
typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;
@@ -2358,7 +2322,7 @@ extern "C" {
PCONTEXT ContextRecord;
PEXCEPTION_ROUTINE LanguageHandler;
PVOID HandlerData;
- PUNWIND_HISTORY_TABLE HistoryTable;
+ struct _UNWIND_HISTORY_TABLE *HistoryTable;
ULONG ScopeIndex;
BOOLEAN ControlPcIsUnwound;
PBYTE NonVolatileRegisters;
@@ -2964,30 +2928,10 @@ __buildmemorybarrier()
#ifdef __x86_64__
- /* http://msdn.microsoft.com/en-us/library/ms680597(VS.85).aspx */
-
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
- typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
- ULONG64 ImageBase;
- PRUNTIME_FUNCTION FunctionEntry;
- } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
#define UNWIND_HISTORY_TABLE_NONE 0
#define UNWIND_HISTORY_TABLE_GLOBAL 1
#define UNWIND_HISTORY_TABLE_LOCAL 2
- typedef struct _UNWIND_HISTORY_TABLE {
- ULONG Count;
- BYTE LocalHint;
- BYTE GlobalHint;
- BYTE Search;
- BYTE Once;
- ULONG64 LowAddress;
- ULONG64 HighAddress;
- UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
- } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
/* http://msdn.microsoft.com/en-us/library/b6sf5kbd(VS.80).aspx */
struct _DISPATCHER_CONTEXT;
@@ -3004,7 +2948,7 @@ __buildmemorybarrier()
PEXCEPTION_ROUTINE LanguageHandler;
PVOID HandlerData;
/* http://www.nynaeve.net/?p=99 */
- PUNWIND_HISTORY_TABLE HistoryTable;
+ struct _UNWIND_HISTORY_TABLE *HistoryTable;
ULONG ScopeIndex;
ULONG Fill0;
};
@@ -8939,6 +8883,27 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
} IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER;
#endif
+#ifndef __i386__
+
+#define UNWIND_HISTORY_TABLE_SIZE 12
+
+ typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
+ ULONG_PTR ImageBase;
+ PRUNTIME_FUNCTION FunctionEntry;
+ } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
+
+ typedef struct _UNWIND_HISTORY_TABLE {
+ DWORD Count;
+ BYTE LocalHint;
+ BYTE GlobalHint;
+ BYTE Search;
+ BYTE Once;
+ ULONG_PTR LowAddress;
+ ULONG_PTR HighAddress;
+ UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
+ } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
+#endif /* !__i386__ */
+
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
NTSYSAPI WORD NTAPI RtlCaptureStackBackTrace (DWORD FramesToSkip, DWORD FramesToCapture, PVOID *BackTrace, PDWORD BackTraceHash);
#endif
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public