From 3c11ff975018cf07ec29ba4d9cbc1798257a38ca Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 4 Dec 2009 14:29:35 +0100 Subject: [PATCH] include: Move some 64-bit definitions to winnt.h to match the latest PSDK. --- include/winnt.h | 158 ++++++++++++++++++++++++++++++++++++++++++ include/winternl.h | 168 --------------------------------------------- 2 files changed, 158 insertions(+), 168 deletions(-) diff --git a/include/winnt.h b/include/winnt.h index 222af220c34..fae8a457139 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -1004,8 +1004,166 @@ typedef struct _RUNTIME_FUNCTION DWORD UnwindData; } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; +#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; + UCHAR Search; + ULONG64 LowAddress; + ULONG64 HighAddress; + UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; +} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; + +typedef struct _KNONVOLATILE_CONTEXT_POINTERS +{ + union + { + PM128A FloatingContext[16]; + struct + { + PM128A Xmm0; + PM128A Xmm1; + PM128A Xmm2; + PM128A Xmm3; + PM128A Xmm4; + PM128A Xmm5; + PM128A Xmm6; + PM128A Xmm7; + PM128A Xmm8; + PM128A Xmm9; + PM128A Xmm10; + PM128A Xmm11; + PM128A Xmm12; + PM128A Xmm13; + PM128A Xmm14; + PM128A Xmm15; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME1; + + union + { + PULONG64 IntegerContext[16]; + struct + { + PULONG64 Rax; + PULONG64 Rcx; + PULONG64 Rdx; + PULONG64 Rbx; + PULONG64 Rsp; + PULONG64 Rbp; + PULONG64 Rsi; + PULONG64 Rdi; + PULONG64 R8; + PULONG64 R9; + PULONG64 R10; + PULONG64 R11; + PULONG64 R12; + PULONG64 R13; + PULONG64 R14; + PULONG64 R15; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME2; +} KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; + +PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry(DWORD64,DWORD64*,UNWIND_HISTORY_TABLE*); +PVOID WINAPI RtlVirtualUnwind(ULONG,ULONG64,ULONG64,RUNTIME_FUNCTION*,CONTEXT*,PVOID*,ULONG64*,KNONVOLATILE_CONTEXT_POINTERS*); + +#define UNW_FLAG_NHANDLER 0 +#define UNW_FLAG_EHANDLER 1 +#define UNW_FLAG_UHANDLER 2 +#define UNW_FLAG_CHAININFO 4 + #endif /* __x86_64__ */ +/* IA64 context definitions */ +#ifdef __ia64__ + +typedef struct _FRAME_POINTERS { + ULONGLONG MemoryStackFp; + ULONGLONG BackingStoreFp; +} FRAME_POINTERS, *PFRAME_POINTERS; + +#define UNWIND_HISTORY_TABLE_SIZE 12 + +typedef struct _UNWIND_HISTORY_TABLE_ENTRY { + ULONG64 ImageBase; + ULONG64 Gp; + PRUNTIME_FUNCTION FunctionEntry; +} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; + +typedef struct _UNWIND_HISTORY_TABLE { + ULONG Count; + UCHAR Search; + ULONG64 LowAddress; + ULONG64 HighAddress; + UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; +} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; + +typedef struct _KNONVOLATILE_CONTEXT_POINTERS +{ + PFLOAT128 FltS0; + PFLOAT128 FltS1; + PFLOAT128 FltS2; + PFLOAT128 FltS3; + PFLOAT128 HighFloatingContext[10]; + PFLOAT128 FltS4; + PFLOAT128 FltS5; + PFLOAT128 FltS6; + PFLOAT128 FltS7; + PFLOAT128 FltS8; + PFLOAT128 FltS9; + PFLOAT128 FltS10; + PFLOAT128 FltS11; + PFLOAT128 FltS12; + PFLOAT128 FltS13; + PFLOAT128 FltS14; + PFLOAT128 FltS15; + PFLOAT128 FltS16; + PFLOAT128 FltS17; + PFLOAT128 FltS18; + PFLOAT128 FltS19; + PULONGLONG IntS0; + PULONGLONG IntS1; + PULONGLONG IntS2; + PULONGLONG IntS3; + PULONGLONG IntSp; + PULONGLONG IntS0Nat; + PULONGLONG IntS1Nat; + PULONGLONG IntS2Nat; + PULONGLONG IntS3Nat; + PULONGLONG IntSpNat; + PULONGLONG Preds; + PULONGLONG BrRp; + PULONGLONG BrS0; + PULONGLONG BrS1; + PULONGLONG BrS2; + PULONGLONG BrS3; + PULONGLONG BrS4; + PULONGLONG ApUNAT; + PULONGLONG ApLC; + PULONGLONG ApEC; + PULONGLONG RsPFS; + PULONGLONG StFSR; + PULONGLONG StFIR; + PULONGLONG StFDR; + PULONGLONG Cflag; +} KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; + +ULONGLONG WINAPI RtlVirtualUnwind(ULONGLONG,ULONGLONG,RUNTIME_FUNCTION*,CONTEXT*,BOOLEAN*,FRAME_POINTERS*,KNONVOLATILE_CONTEXT_POINTERS*); + +#endif /* __ia64__ */ + /* Alpha context definitions */ #if defined(_ALPHA_) || defined(__ALPHA__) || defined(__alpha__) diff --git a/include/winternl.h b/include/winternl.h index 9625d883d84..315becf38b9 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -883,174 +883,6 @@ typedef enum UNC_DOT_PATH /* "//." */ } DOS_PATHNAME_TYPE; -/*********************************************************************** - * IA64 specific types and data structures - */ - -#ifdef __ia64__ - -typedef struct _FRAME_POINTERS { - ULONGLONG MemoryStackFp; - ULONGLONG BackingStoreFp; -} FRAME_POINTERS, *PFRAME_POINTERS; - -#define UNWIND_HISTORY_TABLE_SIZE 12 - -typedef struct _UNWIND_HISTORY_TABLE_ENTRY { - ULONG64 ImageBase; - ULONG64 Gp; - PRUNTIME_FUNCTION FunctionEntry; -} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; - -typedef struct _UNWIND_HISTORY_TABLE { - ULONG Count; - UCHAR Search; - ULONG64 LowAddress; - ULONG64 HighAddress; - UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; -} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; - -typedef struct _KNONVOLATILE_CONTEXT_POINTERS -{ - PFLOAT128 FltS0; - PFLOAT128 FltS1; - PFLOAT128 FltS2; - PFLOAT128 FltS3; - PFLOAT128 HighFloatingContext[10]; - PFLOAT128 FltS4; - PFLOAT128 FltS5; - PFLOAT128 FltS6; - PFLOAT128 FltS7; - PFLOAT128 FltS8; - PFLOAT128 FltS9; - PFLOAT128 FltS10; - PFLOAT128 FltS11; - PFLOAT128 FltS12; - PFLOAT128 FltS13; - PFLOAT128 FltS14; - PFLOAT128 FltS15; - PFLOAT128 FltS16; - PFLOAT128 FltS17; - PFLOAT128 FltS18; - PFLOAT128 FltS19; - PULONGLONG IntS0; - PULONGLONG IntS1; - PULONGLONG IntS2; - PULONGLONG IntS3; - PULONGLONG IntSp; - PULONGLONG IntS0Nat; - PULONGLONG IntS1Nat; - PULONGLONG IntS2Nat; - PULONGLONG IntS3Nat; - PULONGLONG IntSpNat; - PULONGLONG Preds; - PULONGLONG BrRp; - PULONGLONG BrS0; - PULONGLONG BrS1; - PULONGLONG BrS2; - PULONGLONG BrS3; - PULONGLONG BrS4; - PULONGLONG ApUNAT; - PULONGLONG ApLC; - PULONGLONG ApEC; - PULONGLONG RsPFS; - PULONGLONG StFSR; - PULONGLONG StFIR; - PULONGLONG StFDR; - PULONGLONG Cflag; -} KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; - -ULONGLONG WINAPI RtlVirtualUnwind(ULONGLONG,ULONGLONG,RUNTIME_FUNCTION*,CONTEXT*,BOOLEAN*,FRAME_POINTERS*,KNONVOLATILE_CONTEXT_POINTERS*); - -#endif /* defined(__ia64__) */ - -/*********************************************************************** - * x86-64 specific types and data structures - */ - -#ifdef __x86_64__ - -#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; - UCHAR Search; - ULONG64 LowAddress; - ULONG64 HighAddress; - UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; -} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; - -typedef struct _KNONVOLATILE_CONTEXT_POINTERS -{ - union - { - PM128A FloatingContext[16]; - struct - { - PM128A Xmm0; - PM128A Xmm1; - PM128A Xmm2; - PM128A Xmm3; - PM128A Xmm4; - PM128A Xmm5; - PM128A Xmm6; - PM128A Xmm7; - PM128A Xmm8; - PM128A Xmm9; - PM128A Xmm10; - PM128A Xmm11; - PM128A Xmm12; - PM128A Xmm13; - PM128A Xmm14; - PM128A Xmm15; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME1; - - union - { - PULONG64 IntegerContext[16]; - struct - { - PULONG64 Rax; - PULONG64 Rcx; - PULONG64 Rdx; - PULONG64 Rbx; - PULONG64 Rsp; - PULONG64 Rbp; - PULONG64 Rsi; - PULONG64 Rdi; - PULONG64 R8; - PULONG64 R9; - PULONG64 R10; - PULONG64 R11; - PULONG64 R12; - PULONG64 R13; - PULONG64 R14; - PULONG64 R15; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME2; -} KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; - -PVOID WINAPI RtlVirtualUnwind(ULONG,ULONG64,ULONG64,RUNTIME_FUNCTION*,CONTEXT*,PVOID*,ULONG64*,KNONVOLATILE_CONTEXT_POINTERS*); - -#define UNW_FLAG_NHANDLER 0 -#define UNW_FLAG_EHANDLER 1 -#define UNW_FLAG_UHANDLER 2 -#define UNW_FLAG_CHAININFO 4 - -#endif /* __x86_64 */ - /*********************************************************************** * Types and data structures