From bde6b2d5a697e119ff5722a795cf640cc6c25f25 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <nathbap...@gmail.com>
Date: Sat, 3 Jul 2021 21:46:52 +0530
Subject: [PATCH] headers: Add some missing names in winnt.h

Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com>
---
 mingw-w64-headers/include/winnt.h | 123 +++++++++++++++++++++++++++++-
 1 file changed, 121 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-headers/include/winnt.h 
b/mingw-w64-headers/include/winnt.h
index 5133c1f..9e660bc 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -4180,6 +4180,44 @@ __buildmemorybarrier()
       PVOID UmsCompletionList;
     } UMS_CREATE_THREAD_ATTRIBUTES,*PUMS_CREATE_THREAD_ATTRIBUTES;
 
+#define COMPONENT_KTM 0x01
+#define COMPONENT_VALID_FLAGS COMPONENT_KTM
+
+    typedef struct _COMPONENT_FILTER {
+      DWORD ComponentFlags;
+    } COMPONENT_FILTER,*PCOMPONENT_FILTER;
+
+#define DYNAMIC_EH_CONTINUATION_TARGET_ADD 0x00000001
+#define DYNAMIC_EH_CONTINUATION_TARGET_PROCESSED 0x00000002
+
+    typedef struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGET {
+      ULONG_PTR TargetAddress;
+      ULONG_PTR Flags;
+    } 
PROCESS_DYNAMIC_EH_CONTINUATION_TARGET,*PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET;
+
+    typedef struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION {
+      WORD NumberOfTargets;
+      WORD Reserved;
+      DWORD Reserved2;
+      PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets;
+    } 
PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION,*PPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION;
+
+#define DYNAMIC_ENFORCED_ADDRESS_RANGE_ADD 0x00000001
+#define DYNAMIC_ENFORCED_ADDRESS_RANGE_PROCESSED 0x00000002
+
+    typedef struct _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE {
+      ULONG_PTR BaseAddress;
+      SIZE_T Size;
+      DWORD Flags;
+    } 
PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE,*PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE;
+
+    typedef struct _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION {
+      WORD NumberOfRanges;
+      WORD Reserved;
+      DWORD Reserved2;
+      PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges;
+    } 
PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION,*PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION;
+
     typedef struct _QUOTA_LIMITS {
       SIZE_T PagedPoolLimit;
       SIZE_T NonPagedPoolLimit;
@@ -4252,6 +4290,8 @@ __buildmemorybarrier()
       ProcessPayloadRestrictionPolicy,
       ProcessChildProcessPolicy,
       ProcessSideChannelIsolationPolicy,
+      ProcessUserShadowStackPolicy,
+      ProcessRedirectionTrustPolicy,
       MaxProcessMitigationPolicy
     } PROCESS_MITIGATION_POLICY,*PPROCESS_MITIGATION_POLICY;
 
@@ -4426,6 +4466,36 @@ __buildmemorybarrier()
       };
     } PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY, 
*PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY;
 
+    typedef struct _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY {
+      __C89_NAMELESS union {
+        DWORD Flags;
+        __C89_NAMELESS struct {
+          DWORD EnableUserShadowStack : 1;
+          DWORD AuditUserShadowStack : 1;
+          DWORD SetContextIpValidation : 1;
+          DWORD AuditSetContextIpValidation : 1;
+          DWORD EnableUserShadowStackStrictMode : 1;
+          DWORD BlockNonCetBinaries : 1;
+          DWORD BlockNonCetBinariesNonEhcont : 1;
+          DWORD AuditBlockNonCetBinaries : 1;
+          DWORD CetDynamicApisOutOfProcOnly : 1;
+          DWORD SetContextIpValidationRelaxedMode : 1;
+          DWORD ReservedFlags : 22;
+        };
+      };
+    } PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY, 
*PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY;
+
+    typedef struct _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY {
+      __C89_NAMELESS union {
+        DWORD Flags;
+        __C89_NAMELESS struct {
+          DWORD EnforceRedirectionTrust : 1;
+          DWORD AuditRedirectionTrust : 1;
+          DWORD ReservedFlags : 30;
+        };
+      };
+    } PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY, 
*PPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY;
+
     typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
       LARGE_INTEGER TotalUserTime;
       LARGE_INTEGER TotalKernelTime;
@@ -4758,6 +4828,16 @@ __buildmemorybarrier()
       DWORD64 CycleTime;
     } 
SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION,*PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION;
 
+    typedef struct _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION {
+      DWORD Machine : 16;
+      DWORD KernelMode : 1;
+      DWORD UserMode : 1;
+      DWORD Native : 1;
+      DWORD Process : 1;
+      DWORD WoW64Container : 1;
+      DWORD ReservedZero0 : 11;
+    } 
SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION,*PSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION;
+
 #define PROCESSOR_INTEL_386 386
 #define PROCESSOR_INTEL_486 486
 #define PROCESSOR_INTEL_PENTIUM 586
@@ -4834,19 +4914,58 @@ __buildmemorybarrier()
 #define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE 31
 #define PF_RDTSCP_INSTRUCTION_AVAILABLE 32
 #define PF_RDPID_INSTRUCTION_AVAILABLE 33
+#define PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE 34
+#define PF_MONITORX_INSTRUCTION_AVAILABLE 35
+#define PF_SSSE3_INSTRUCTIONS_AVAILABLE 36
+#define PF_SSE4_1_INSTRUCTIONS_AVAILABLE 37
+#define PF_SSE4_2_INSTRUCTIONS_AVAILABLE 38
+#define PF_AVX_INSTRUCTIONS_AVAILABLE 39
+#define PF_AVX2_INSTRUCTIONS_AVAILABLE 40
+#define PF_AVX512F_INSTRUCTIONS_AVAILABLE 41
+#define PF_ERMS_AVAILABLE 42
+#define PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE 43
+#define PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE 44
 
 #define XSTATE_LEGACY_FLOATING_POINT (0)
 #define XSTATE_LEGACY_SSE (1)
 #define XSTATE_GSSE (2)
 #define XSTATE_AVX (XSTATE_GSSE)
+#define XSTATE_MPX_BNDREGS (3)
+#define XSTATE_MPX_BNDCSR (4)
+#define XSTATE_AVX512_KMASK (5)
+#define XSTATE_AVX512_ZMM_H (6)
+#define XSTATE_AVX512_ZMM (7)
+#define XSTATE_IPT (8)
+#define XSTATE_PASID (10)
+#define XSTATE_CET_U (11)
+#define XSTATE_CET_S (12)
+#define XSTATE_AMX_TILE_CONFIG (17)
+#define XSTATE_AMX_TILE_DATA (18)
+#define XSTATE_LWP (62)
+#define MAXIMUM_XSTATE_FEATURES (64)
 
 #define XSTATE_MASK_LEGACY_FLOATING_POINT (1ULL << 
(XSTATE_LEGACY_FLOATING_POINT))
 #define XSTATE_MASK_LEGACY_SSE (1ULL << (XSTATE_LEGACY_SSE))
 #define XSTATE_MASK_LEGACY (XSTATE_MASK_LEGACY_FLOATING_POINT | 
XSTATE_MASK_LEGACY_SSE)
 #define XSTATE_MASK_GSSE (1LLU << (XSTATE_GSSE))
 #define XSTATE_MASK_AVX (XSTATE_MASK_GSSE)
-
-#define MAXIMUM_XSTATE_FEATURES (64)
+#define XSTATE_MASK_MPX ((1LLU << (XSTATE_MPX_BNDREGS)) | (1LLU << 
(XSTATE_MPX_BNDCSR)))
+#define XSTATE_MASK_AVX512 ((1LLU << (XSTATE_AVX512_KMASK)) | (1LLU << 
(XSTATE_AVX512_ZMM_H)) | (1LLU << (XSTATE_AVX512_ZMM)))
+#define XSTATE_MASK_IPT (1LLU << (XSTATE_IPT))
+#define XSTATE_MASK_PASID (1LLU << (XSTATE_PASID))
+#define XSTATE_MASK_CET_U (1LLU << (XSTATE_CET_U))
+#define XSTATE_MASK_CET_S (1LLU << (XSTATE_CET_S))
+#define XSTATE_MASK_AMX_TILE_CONFIG (1LLU << (XSTATE_AMX_TILE_CONFIG))
+#define XSTATE_MASK_AMX_TILE_DATA (1LLU << (XSTATE_AMX_TILE_DATA))
+#define XSTATE_MASK_LWP (1LLU << (XSTATE_LWP))
+#if defined(_AMD64_) || defined(__x86_64__)
+#define XSTATE_MASK_ALLOWED (XSTATE_MASK_LEGACY | XSTATE_MASK_AVX | 
XSTATE_MASK_MPX | XSTATE_MASK_AVX512 | XSTATE_MASK_IPT | XSTATE_MASK_PASID | 
XSTATE_MASK_CET_U | XSTATE_MASK_AMX_TILE_CONFIG | XSTATE_MASK_AMX_TILE_DATA | 
XSTATE_MASK_LWP)
+#elif defined(_X86_) || defined(__i386__)
+#define XSTATE_MASK_ALLOWED (XSTATE_MASK_LEGACY | XSTATE_MASK_AVX | 
XSTATE_MASK_MPX | XSTATE_MASK_AVX512 | XSTATE_MASK_IPT | XSTATE_MASK_CET_U | 
XSTATE_MASK_LWP)
+#endif
+#define XSTATE_MASK_PERSISTENT ((1LLU << (XSTATE_MPX_BNDCSR)) | 
XSTATE_MASK_LWP)
+#define XSTATE_MASK_USER_VISIBLE_SUPERVISOR (XSTATE_MASK_CET_U)
+#define XSTATE_MASK_LARGE_FEATURES (XSTATE_MASK_AMX_TILE_DATA)
 
     typedef struct _XSTATE_FEATURE {
       DWORD Offset;
-- 
2.32.0

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to