widl: Import Wine version 11-rc1
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-tools/widl/VERSION b/mingw-w64-tools/widl/VERSION
index a8e035a..2ea0858 100644
--- a/mingw-w64-tools/widl/VERSION
+++ b/mingw-w64-tools/widl/VERSION
@@ -1 +1 @@
-WIDL version 10.17
+WIDL version 11.0-rc1
diff --git a/mingw-w64-tools/widl/configure b/mingw-w64-tools/widl/configure
index b9c2990..6afd96e 100755
--- a/mingw-w64-tools/widl/configure
+++ b/mingw-w64-tools/widl/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for widl 10.17.
+# Generated by GNU Autoconf 2.72 for widl 11.0-rc1.
#
# Report bugs to <mingw-w64-public@lists.sourceforge.net>.
#
@@ -603,8 +603,8 @@
# Identity of this package.
PACKAGE_NAME='widl'
PACKAGE_TARNAME='widl'
-PACKAGE_VERSION='10.17'
-PACKAGE_STRING='widl 10.17'
+PACKAGE_VERSION='11.0-rc1'
+PACKAGE_STRING='widl 11.0-rc1'
PACKAGE_BUGREPORT='mingw-w64-public@lists.sourceforge.net'
PACKAGE_URL=''
@@ -1311,7 +1311,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures widl 10.17 to adapt to many kinds of systems.
+'configure' configures widl 11.0-rc1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1383,7 +1383,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of widl 10.17:";;
+ short | recursive ) echo "Configuration of widl 11.0-rc1:";;
esac
cat <<\_ACEOF
@@ -1485,7 +1485,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-widl configure 10.17
+widl configure 11.0-rc1
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1910,7 +1910,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by widl $as_me 10.17, which was
+It was created by widl $as_me 11.0-rc1, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3327,7 +3327,7 @@
# Define the identity of the package.
PACKAGE='widl'
- VERSION='10.17'
+ VERSION='11.0-rc1'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5797,7 +5797,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by widl $as_me 10.17, which was
+This file was extended by widl $as_me 11.0-rc1, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5865,7 +5865,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-widl config.status 10.17
+widl config.status 11.0-rc1
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
diff --git a/mingw-w64-tools/widl/include/synchapi.h b/mingw-w64-tools/widl/include/synchapi.h
index 0b3dcb8..aabb44c 100644
--- a/mingw-w64-tools/widl/include/synchapi.h
+++ b/mingw-w64-tools/widl/include/synchapi.h
@@ -27,6 +27,18 @@
void WINAPI WakeByAddressAll(void*);
void WINAPI WakeByAddressSingle(void*);
+typedef RTL_BARRIER SYNCHRONIZATION_BARRIER;
+typedef PRTL_BARRIER PSYNCHRONIZATION_BARRIER;
+typedef PRTL_BARRIER LPSYNCHRONIZATION_BARRIER;
+
+#define SYNCHRONIZATION_BARRIER_FLAGS_SPIN_ONLY 0x1
+#define SYNCHRONIZATION_BARRIER_FLAGS_BLOCK_ONLY 0x2
+#define SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE 0x4
+
+BOOL WINAPI InitializeSynchronizationBarrier(SYNCHRONIZATION_BARRIER *,LONG, LONG);
+BOOL WINAPI DeleteSynchronizationBarrier(SYNCHRONIZATION_BARRIER *);
+BOOL WINAPI EnterSynchronizationBarrier(SYNCHRONIZATION_BARRIER*, DWORD);
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-tools/widl/include/winbase.h b/mingw-w64-tools/widl/include/winbase.h
index c96f58a..0213b40 100644
--- a/mingw-w64-tools/widl/include/winbase.h
+++ b/mingw-w64-tools/widl/include/winbase.h
@@ -1823,6 +1823,7 @@
WINADVAPI BOOL WINAPI GetAce(PACL,DWORD,LPVOID*);
WINADVAPI BOOL WINAPI GetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
WINBASEAPI DWORD WINAPI GetActiveProcessorCount(WORD);
+WINBASEAPI WORD WINAPI GetActiveProcessorGroupCount(void);
WINBASEAPI HRESULT WINAPI GetApplicationRestartSettings(HANDLE,WCHAR*,DWORD*,DWORD*);
WINBASEAPI UINT WINAPI GetAtomNameA(ATOM,LPSTR,INT);
WINBASEAPI UINT WINAPI GetAtomNameW(ATOM,LPWSTR,INT);
@@ -1921,6 +1922,7 @@
#define GetLongPathName WINELIB_NAME_AW(GetLongPathName)
WINBASEAPI BOOL WINAPI GetMailslotInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
WINBASEAPI DWORD WINAPI GetMaximumProcessorCount(WORD);
+WINBASEAPI WORD WINAPI GetMaximumProcessorGroupCount(void);
WINBASEAPI DWORD WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD);
WINBASEAPI DWORD WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD);
#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
@@ -1969,6 +1971,7 @@
#define GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
WINBASEAPI FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR);
WINBASEAPI BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD_PTR,PDWORD_PTR);
+WINBASEAPI BOOL WINAPI GetProcessGroupAffinity(HANDLE, PUSHORT, PUSHORT);
WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
WINBASEAPI DWORD WINAPI GetProcessId(HANDLE);
WINBASEAPI DWORD WINAPI GetProcessIdOfThread(HANDLE);
@@ -2031,6 +2034,7 @@
#define GetTempPath WINELIB_NAME_AW(GetTempPath)
WINBASEAPI BOOL WINAPI GetThreadContext(HANDLE,CONTEXT *);
WINBASEAPI DWORD WINAPI GetThreadErrorMode(void);
+WINBASEAPI BOOL WINAPI GetThreadGroupAffinity(HANDLE, PGROUP_AFFINITY);
WINBASEAPI DWORD WINAPI GetThreadId(HANDLE);
WINBASEAPI BOOL WINAPI GetThreadIOPendingFlag(HANDLE,PBOOL);
WINBASEAPI INT WINAPI GetThreadPriority(HANDLE);
@@ -2409,7 +2413,9 @@
WINBASEAPI BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT *);
WINBASEAPI BOOL WINAPI SetThreadErrorMode(DWORD,LPDWORD);
WINBASEAPI DWORD WINAPI SetThreadExecutionState(EXECUTION_STATE);
+WINBASEAPI BOOL WINAPI SetThreadGroupAffinity(HANDLE, const GROUP_AFFINITY *, GROUP_AFFINITY *);
WINBASEAPI DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
+WINBASEAPI BOOL WINAPI SetThreadIdealProcessorEx(HANDLE, PROCESSOR_NUMBER *, PROCESSOR_NUMBER *);
WINBASEAPI BOOL WINAPI SetThreadPriority(HANDLE,INT);
WINBASEAPI BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
WINADVAPI BOOL WINAPI SetThreadToken(PHANDLE,HANDLE);
diff --git a/mingw-w64-tools/widl/include/winnt.h b/mingw-w64-tools/widl/include/winnt.h
index 076ab88..2271c6b 100644
--- a/mingw-w64-tools/widl/include/winnt.h
+++ b/mingw-w64-tools/widl/include/winnt.h
@@ -401,7 +401,9 @@
/* Compile time assertion */
-#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)
+#define C_ASSERT(e) static_assert(e, #e)
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
#define C_ASSERT(e) _Static_assert(e, #e)
#else
#define C_ASSERT(e) extern void __C_ASSERT__(int [(e)?1:-1])
@@ -732,10 +734,11 @@
#define PROCESSOR_OPTIL 18767
#ifdef _WIN64
-#define MAXIMUM_PROCESSORS 64
+#define MAXIMUM_PROC_PER_GROUP 64
#else
-#define MAXIMUM_PROCESSORS 32
+#define MAXIMUM_PROC_PER_GROUP 32
#endif
+#define MAXIMUM_PROCESSORS MAXIMUM_PROC_PER_GROUP
typedef struct _MEMORY_BASIC_INFORMATION
{
@@ -1050,67 +1053,95 @@
} HEAP_INFORMATION_CLASS;
/* Processor feature flags. */
-#define PF_FLOATING_POINT_PRECISION_ERRATA 0
-#define PF_FLOATING_POINT_EMULATED 1
-#define PF_COMPARE_EXCHANGE_DOUBLE 2
-#define PF_MMX_INSTRUCTIONS_AVAILABLE 3
-#define PF_PPC_MOVEMEM_64BIT_OK 4
-#define PF_ALPHA_BYTE_INSTRUCTIONS 5
-#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
-#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
-#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
-#define PF_PAE_ENABLED 9
-#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
-#define PF_SSE_DAZ_MODE_AVAILABLE 11
-#define PF_NX_ENABLED 12
-#define PF_SSE3_INSTRUCTIONS_AVAILABLE 13
-#define PF_COMPARE_EXCHANGE128 14
-#define PF_COMPARE64_EXCHANGE128 15
-#define PF_CHANNELS_ENABLED 16
-#define PF_XSAVE_ENABLED 17
-#define PF_ARM_VFP_32_REGISTERS_AVAILABLE 18
-#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE 19
-#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION 20
-#define PF_VIRT_FIRMWARE_ENABLED 21
-#define PF_RDWRFSGSBASE_AVAILABLE 22
-#define PF_FASTFAIL_AVAILABLE 23
-#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE 24
-#define PF_ARM_64BIT_LOADSTORE_ATOMIC 25
-#define PF_ARM_EXTERNAL_CACHE_AVAILABLE 26
-#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE 27
-#define PF_RDRAND_INSTRUCTION_AVAILABLE 28
-#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE 29
-#define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE 30
-#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 PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE 45
-#define PF_ARM_SVE_INSTRUCTIONS_AVAILABLE 46
-#define PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE 47
-#define PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE 48
-#define PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE 49
-#define PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE 50
-#define PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE 51
-#define PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE 52
-#define PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE 53
-#define PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE 54
-#define PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE 55
-#define PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE 56
-#define PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE 57
-#define PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE 58
-#define PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE 59
-#define PF_BMI2_INSTRUCTIONS_AVAILABLE 60
+#define PF_FLOATING_POINT_PRECISION_ERRATA 0
+#define PF_FLOATING_POINT_EMULATED 1
+#define PF_COMPARE_EXCHANGE_DOUBLE 2
+#define PF_MMX_INSTRUCTIONS_AVAILABLE 3
+#define PF_PPC_MOVEMEM_64BIT_OK 4
+#define PF_ALPHA_BYTE_INSTRUCTIONS 5
+#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
+#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
+#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
+#define PF_PAE_ENABLED 9
+#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
+#define PF_SSE_DAZ_MODE_AVAILABLE 11
+#define PF_NX_ENABLED 12
+#define PF_SSE3_INSTRUCTIONS_AVAILABLE 13
+#define PF_COMPARE_EXCHANGE128 14
+#define PF_COMPARE64_EXCHANGE128 15
+#define PF_CHANNELS_ENABLED 16
+#define PF_XSAVE_ENABLED 17
+#define PF_ARM_VFP_32_REGISTERS_AVAILABLE 18
+#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE 19
+#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION 20
+#define PF_VIRT_FIRMWARE_ENABLED 21
+#define PF_RDWRFSGSBASE_AVAILABLE 22
+#define PF_FASTFAIL_AVAILABLE 23
+#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE 24
+#define PF_ARM_64BIT_LOADSTORE_ATOMIC 25
+#define PF_ARM_EXTERNAL_CACHE_AVAILABLE 26
+#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE 27
+#define PF_RDRAND_INSTRUCTION_AVAILABLE 28
+#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE 29
+#define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE 30
+#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 PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE 45
+#define PF_ARM_SVE_INSTRUCTIONS_AVAILABLE 46
+#define PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE 47
+#define PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE 48
+#define PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE 49
+#define PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE 50
+#define PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE 51
+#define PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE 52
+#define PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE 53
+#define PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE 54
+#define PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE 55
+#define PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE 56
+#define PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE 57
+#define PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE 58
+#define PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE 59
+#define PF_BMI2_INSTRUCTIONS_AVAILABLE 60
+#define PF_MOVDIR64B_INSTRUCTION_AVAILABLE 61
+#define PF_ARM_LSE2_AVAILABLE 62
+#define PF_RESERVED_FEATURE 63
+#define PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE 64
+#define PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE 65
+#define PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE 66
+#define PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE 67
+#define PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE 68
+#define PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE 69
+#define PF_ARM_SME_INSTRUCTIONS_AVAILABLE 70
+#define PF_ARM_SME2_INSTRUCTIONS_AVAILABLE 71
+#define PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE 72
+#define PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE 73
+#define PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE 74
+#define PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE 75
+#define PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE 76
+#define PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE 77
+#define PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE 78
+#define PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE 79
+#define PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE 80
+#define PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE 81
+#define PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE 82
+#define PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE 83
+#define PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE 84
+#define PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE 85
+#define PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE 86
+#define PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE 87
+#define PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE 88
/* Execution state flags */
@@ -2560,14 +2591,21 @@
#define IO_REPARSE_TAG_CLOUD_F __MSABI_LONG(0x9000F01A)
#define IO_REPARSE_TAG_CLOUD_MASK __MSABI_LONG(0x0000F000)
#define IO_REPARSE_TAG_APPEXECLINK __MSABI_LONG(0x8000001B)
-#define IO_REPARSE_TAG_GVFS __MSABI_LONG(0x9000001C)
+#define IO_REPARSE_TAG_PROJFS __MSABI_LONG(0x9000001C)
+#define IO_REPARSE_TAG_LX_SYMLINK __MSABI_LONG(0xA000001D)
#define IO_REPARSE_TAG_STORAGE_SYNC __MSABI_LONG(0x8000001E)
#define IO_REPARSE_TAG_WCI_TOMBSTONE __MSABI_LONG(0xA000001F)
#define IO_REPARSE_TAG_UNHANDLED __MSABI_LONG(0x80000020)
#define IO_REPARSE_TAG_ONEDRIVE __MSABI_LONG(0x80000021)
-#define IO_REPARSE_TAG_GVFS_TOMBSTONE __MSABI_LONG(0xA0000022)
+#define IO_REPARSE_TAG_PROJFS_TOMBSTONE __MSABI_LONG(0xA0000022)
+#define IO_REPARSE_TAG_AF_UNIX __MSABI_LONG(0x80000023)
+#define IO_REPARSE_TAG_WCI_LINK __MSABI_LONG(0xA0000027)
+#define IO_REPARSE_TAG_WCI_LINK_1 __MSABI_LONG(0xA0001027)
+#define IO_REPARSE_TAG_DATALESS_CIM __MSABI_LONG(0xA0000028)
+#define IsReparseTagDirectory(x) ((x) & 0x10000000)
#define IsReparseTagNameSurrogate(x) ((x) & 0x20000000)
+#define IsReparseTagMicrosoft(x) ((x) & 0x80000000)
/*
* File formats definitions
@@ -4198,48 +4236,57 @@
*/
typedef enum _TOKEN_INFORMATION_CLASS {
- TokenUser = 1,
- TokenGroups,
- TokenPrivileges,
- TokenOwner,
- TokenPrimaryGroup,
- TokenDefaultDacl,
- TokenSource,
- TokenType,
- TokenImpersonationLevel,
- TokenStatistics,
- TokenRestrictedSids,
- TokenSessionId,
- TokenGroupsAndPrivileges,
- TokenSessionReference,
- TokenSandBoxInert,
- TokenAuditPolicy,
- TokenOrigin,
- TokenElevationType,
- TokenLinkedToken,
- TokenElevation,
- TokenHasRestrictions,
- TokenAccessInformation,
- TokenVirtualizationAllowed,
- TokenVirtualizationEnabled,
- TokenIntegrityLevel,
- TokenUIAccess,
- TokenMandatoryPolicy,
- TokenLogonSid,
- TokenIsAppContainer,
- TokenCapabilities,
- TokenAppContainerSid,
- TokenAppContainerNumber,
- TokenUserClaimAttributes,
- TokenDeviceClaimAttributes,
- TokenRestrictedUserClaimAttributes,
- TokenRestrictedDeviceClaimAttributes,
- TokenDeviceGroups,
- TokenRestrictedDeviceGroups,
- TokenSecurityAttributes,
- TokenIsRestricted,
- TokenProcessTrustLevel,
- MaxTokenInfoClass
+ TokenUser = 1,
+ TokenGroups = 2,
+ TokenPrivileges = 3,
+ TokenOwner = 4,
+ TokenPrimaryGroup = 5,
+ TokenDefaultDacl = 6,
+ TokenSource = 7,
+ TokenType = 8,
+ TokenImpersonationLevel = 9,
+ TokenStatistics = 10,
+ TokenRestrictedSids = 11,
+ TokenSessionId = 12,
+ TokenGroupsAndPrivileges = 13,
+ TokenSessionReference = 14,
+ TokenSandBoxInert = 15,
+ TokenAuditPolicy = 16,
+ TokenOrigin = 17,
+ TokenElevationType = 18,
+ TokenLinkedToken = 19,
+ TokenElevation = 20,
+ TokenHasRestrictions = 21,
+ TokenAccessInformation = 22,
+ TokenVirtualizationAllowed = 23,
+ TokenVirtualizationEnabled = 24,
+ TokenIntegrityLevel = 25,
+ TokenUIAccess = 26,
+ TokenMandatoryPolicy = 27,
+ TokenLogonSid = 28,
+ TokenIsAppContainer = 29,
+ TokenCapabilities = 30,
+ TokenAppContainerSid = 31,
+ TokenAppContainerNumber = 32,
+ TokenUserClaimAttributes = 33,
+ TokenDeviceClaimAttributes = 34,
+ TokenRestrictedUserClaimAttributes = 35,
+ TokenRestrictedDeviceClaimAttributes = 36,
+ TokenDeviceGroups = 37,
+ TokenRestrictedDeviceGroups = 38,
+ TokenSecurityAttributes = 39,
+ TokenIsRestricted = 40,
+ TokenProcessTrustLevel = 41,
+ TokenPrivateNameSpace = 42,
+ TokenSingletonAttributes = 43,
+ TokenBnoIsolation = 44,
+ TokenChildProcessFlags = 45,
+ TokenIsLessPrivilegedAppContainer = 46,
+ TokenIsSandboxed = 47,
+ TokenIsAppSilo = 48,
+ TokenLoggingInformation = 49,
+ TokenLearningMode = 50,
+ MaxTokenInfoClass
} TOKEN_INFORMATION_CLASS;
#define DISABLE_MAX_PRIVILEGE 0x1
@@ -6235,6 +6282,14 @@
NTSYSAPI DWORD WINAPI RtlRunOnceComplete(PRTL_RUN_ONCE, DWORD, PVOID);
NTSYSAPI WORD WINAPI RtlCaptureStackBackTrace(DWORD,DWORD,void**,DWORD*);
+typedef struct _RTL_BARRIER {
+ DWORD Reserved1;
+ DWORD Reserved2;
+ ULONG_PTR Reserved3[2];
+ DWORD Reserved4;
+ DWORD Reserved5;
+} RTL_BARRIER, *PRTL_BARRIER;
+
#pragma pack(push,8)
typedef struct _IO_COUNTERS {
ULONGLONG ReadOperationCount;
@@ -6490,15 +6545,57 @@
typedef enum _JOBOBJECTINFOCLASS
{
JobObjectBasicAccountingInformation = 1,
- JobObjectBasicLimitInformation,
- JobObjectBasicProcessIdList,
- JobObjectBasicUIRestrictions,
- JobObjectSecurityLimitInformation,
- JobObjectEndOfJobTimeInformation,
- JobObjectAssociateCompletionPortInformation,
- JobObjectBasicAndIoAccountingInformation,
- JobObjectExtendedLimitInformation,
- JobObjectJobSetInformation,
+ JobObjectBasicLimitInformation = 2,
+ JobObjectBasicProcessIdList = 3,
+ JobObjectBasicUIRestrictions = 4,
+ JobObjectSecurityLimitInformation = 5,
+ JobObjectEndOfJobTimeInformation = 6,
+ JobObjectAssociateCompletionPortInformation = 7,
+ JobObjectBasicAndIoAccountingInformation = 8,
+ JobObjectExtendedLimitInformation = 9,
+ JobObjectJobSetInformation = 10,
+ JobObjectGroupInformation = 11,
+ JobObjectNotificationLimitInformation = 12,
+ JobObjectLimitViolationInformation = 13,
+ JobObjectGroupInformationEx = 14,
+ JobObjectCpuRateControlInformation = 15,
+ JobObjectCompletionFilter = 16,
+ JobObjectCompletionCounter = 17,
+ JobObjectFreezeInformation = 18,
+ JobObjectExtendedAccountingInformation = 19,
+ JobObjectWakeInformation = 20,
+ JobObjectBackgroundInformation = 21,
+ JobObjectSchedulingRankBiasInformation = 22,
+ JobObjectTimerVirtualizationInformation = 23,
+ JobObjectCycleTimeNotification = 24,
+ JobObjectClearEvent = 25,
+ JobObjectInterferenceInformation = 26,
+ JobObjectClearPeakJobMemoryUsed = 27,
+ JobObjectMemoryUsageInformation = 28,
+ JobObjectSharedCommit = 29,
+ JobObjectContainerId = 30,
+ JobObjectIoRateControlInformation = 31,
+ JobObjectNetRateControlInformation = 32,
+ JobObjectNotificationLimitInformation2 = 33,
+ JobObjectLimitViolationInformation2 = 34,
+ JobObjectCreateSilo = 35,
+ JobObjectSiloBasicInformation = 36,
+ JobObjectSiloRootDirectory = 37,
+ JobObjectServerSiloBasicInformation = 38,
+ JobObjectServerSiloUserSharedData = 39,
+ JobObjectServerSiloInitialize = 40,
+ JobObjectServerSiloRunningState = 41,
+ JobObjectIoAttribution = 42,
+ JobObjectMemoryPartitionInformation = 43,
+ JobObjectContainerTelemetryId = 44,
+ JobObjectSiloSystemRoot = 45,
+ JobObjectEnergyTrackingState = 46,
+ JobObjectThreadImpersonationInformation = 47,
+ JobObjectIoPriorityLimit = 48,
+ JobObjectPagePriorityLimit = 49,
+ JobObjectServerSiloDiagnosticInformation = 50,
+ JobObjectNetworkAccountingInformation = 51,
+ JobObjectCpuPartition = 52,
MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS;
@@ -6664,8 +6761,13 @@
typedef struct _NUMA_NODE_RELATIONSHIP
{
DWORD NodeNumber;
- BYTE Reserved[20];
- GROUP_AFFINITY GroupMask;
+ BYTE Reserved[18];
+ WORD GroupCount;
+ union
+ {
+ GROUP_AFFINITY GroupMask;
+ GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
+ };
} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP;
typedef struct _CACHE_RELATIONSHIP
@@ -6675,8 +6777,13 @@
WORD LineSize;
DWORD CacheSize;
PROCESSOR_CACHE_TYPE Type;
- BYTE Reserved[20];
- GROUP_AFFINITY GroupMask;
+ BYTE Reserved[18];
+ WORD GroupCount;
+ union
+ {
+ GROUP_AFFINITY GroupMask;
+ GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
+ };
} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP;
typedef struct _GROUP_RELATIONSHIP
diff --git a/mingw-w64-tools/widl/src/metadata.c b/mingw-w64-tools/widl/src/metadata.c
index 16fb015..04b4f08 100644
--- a/mingw-w64-tools/widl/src/metadata.c
+++ b/mingw-w64-tools/widl/src/metadata.c
@@ -1487,6 +1487,9 @@
/* HSTRING is treated as a fundamental type */
if (type->name && !strcmp( type->name, "HSTRING__" )) return;
+ /* IInspectable is treated as a fundamental type */
+ if (type->name && !strcmp( base_type->name, "IInspectable" )) return;
+
/* GUID is imported from mscorlib */
if (type->name && !strcmp( type->name, "GUID" ))
{
@@ -1495,7 +1498,11 @@
return;
}
- base_type->md.name = add_string( base_type->name );
+ if (base_type->winmd_short_name)
+ base_type->md.name = add_string( base_type->winmd_short_name );
+ else
+ base_type->md.name = add_string( base_type->name );
+
namespace_str = format_namespace( base_type->namespace, "", ".", NULL, NULL );
base_type->md.namespace = add_string( namespace_str );
@@ -2005,7 +2012,7 @@
add_string("value__"), add_blob(sig_value, sizeof(sig_value)) );
type->md.def = add_typedef_row( TYPE_ATTR_PUBLIC | TYPE_ATTR_SEALED | TYPE_ATTR_UNKNOWN, type->md.name,
- type->md.namespace, type->md.extends, field, 1 );
+ type->md.namespace, type->md.extends, field, 0 );
sig_size = make_field_value_sig( typedef_or_ref(TABLE_TYPEREF, type->md.ref), sig_field );
@@ -2740,7 +2747,7 @@
{
UINT flags = TYPE_ATTR_PUBLIC | TYPE_ATTR_SEQUENTIALLAYOUT | TYPE_ATTR_SEALED | TYPE_ATTR_UNKNOWN;
- type->md.def = add_typedef_row( flags, type->md.name, type->md.namespace, type->md.extends, 0, 1 );
+ type->md.def = add_typedef_row( flags, type->md.name, type->md.namespace, type->md.extends, 0, 0 );
add_contractversion_attr_step2( type );
add_apicontract_attr_step2( type );
@@ -2760,7 +2767,7 @@
if (iface_list) LIST_FOR_EACH_ENTRY( iface, iface_list, typeref_t, entry )
{
- create_typeref( iface->type );
+ add_interface_type_step1( iface->type );
}
}
diff --git a/mingw-w64-tools/widl/src/typetree.c b/mingw-w64-tools/widl/src/typetree.c
index c77efbc..8f5e885 100644
--- a/mingw-w64-tools/widl/src/typetree.c
+++ b/mingw-w64-tools/widl/src/typetree.c
@@ -55,6 +55,7 @@
t->impl_name = NULL;
t->param_name = NULL;
t->short_name = NULL;
+ t->winmd_short_name = NULL;
memset(&t->details, 0, sizeof(t->details));
memset(&t->md, 0, sizeof(t->md));
t->typestring_offset = 0;
@@ -697,6 +698,18 @@
return str.buf;
}
+static char *format_parameterized_type_winmd_short_name(type_t *type, typeref_list_t *params)
+{
+ struct strbuf str = {0};
+ unsigned int count = 0;
+
+ strappend(&str, "%s", type->name);
+ if (params) count = list_count(params);
+ if (count) strappend(&str, "`%u", count);
+
+ return str.buf;
+}
+
type_t *type_new_function(var_list_t *args)
{
var_t *arg;
@@ -1530,6 +1543,7 @@
new_type->c_name = format_parameterized_type_c_name(type, params, "", "_C");
new_type->short_name = format_parameterized_type_short_name(type, params, "");
new_type->param_name = format_parameterized_type_c_name(type, params, "", "__C");
+ new_type->winmd_short_name = format_parameterized_type_winmd_short_name(type, params);
if (new_type->type_type == TYPE_DELEGATE)
{
diff --git a/mingw-w64-tools/widl/src/widltypes.h b/mingw-w64-tools/widl/src/widltypes.h
index d1ca368..03b4daf 100644
--- a/mingw-w64-tools/widl/src/widltypes.h
+++ b/mingw-w64-tools/widl/src/widltypes.h
@@ -546,6 +546,7 @@
const char *impl_name; /* C++ parameterized types impl base class name */
const char *param_name; /* used to build c_name of a parameterized type, when used as a parameter */
const char *short_name; /* widl specific short name */
+ const char *winmd_short_name; /* metadata short name for parameterized type */
unsigned int typestring_offset;
unsigned int ptrdesc; /* used for complex structs */
int typelib_idx;