Commit e4ed8c3f37

Andrew Kelley <andrew@ziglang.org>
2022-10-06 16:32:50
update mingw-w64 crt files to v10.0.0
1 parent e52931e
lib/libc/mingw/crt/charmax.c
@@ -10,7 +10,7 @@
 
 __declspec(dllimport) int __lconv_init (void);
 
-int mingw_initcharmax = 0;
+int __mingw_initcharmax = 0;
 
 int _charmax = 255;
 
lib/libc/mingw/crt/crtdll.c
@@ -48,7 +48,7 @@ static int __proc_attached = 0;
 
 static _onexit_table_t atexit_table;
 
-extern int mingw_app_type;
+extern int __mingw_app_type;
 
 extern WINBOOL WINAPI DllMain (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved);
 
@@ -145,7 +145,7 @@ int __mingw_init_ehandler (void);
 WINBOOL WINAPI
 DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
 {
-  mingw_app_type = 0;
+  __mingw_app_type = 0;
   if (dwReason == DLL_PROCESS_ATTACH)
     {
 #if defined(__x86_64__) && !defined(__SEH__)
lib/libc/mingw/crt/crtexe.c
@@ -66,7 +66,7 @@ extern _CRTALLOC(".CRT$XCZ") _PVFV __xc_z[];
 /* TLS initialization hook.  */
 extern const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback;
 
-extern int mingw_app_type;
+extern int __mingw_app_type;
 
 HINSTANCE __mingw_winmain_hInstance;
 _TCHAR *__mingw_winmain_lpCmdLine;
@@ -99,8 +99,8 @@ static void duplicate_ppstrings (int ac, char ***av);
 
 static int __cdecl pre_c_init (void);
 static void __cdecl pre_cpp_init (void);
-_CRTALLOC(".CRT$XIAA") _PIFV mingw_pcinit = pre_c_init;
-_CRTALLOC(".CRT$XCAA") _PVFV mingw_pcppinit = pre_cpp_init;
+_CRTALLOC(".CRT$XIAA") _PIFV __mingw_pcinit = pre_c_init;
+_CRTALLOC(".CRT$XCAA") _PVFV __mingw_pcppinit = pre_cpp_init;
 
 extern int _MINGW_INSTALL_DEBUG_MATHERR;
 
@@ -126,7 +126,7 @@ static int __cdecl
 pre_c_init (void)
 {
   managedapp = check_managed_app ();
-  if (mingw_app_type)
+  if (__mingw_app_type)
     __set_app_type(_GUI_APP);
   else
     __set_app_type (_CONSOLE_APP);
@@ -172,7 +172,7 @@ int WinMainCRTStartup (void)
 #ifdef SEH_INLINE_ASM
   asm ("\t.l_startw:\n");
 #endif
-  mingw_app_type = 1;
+  __mingw_app_type = 1;
   ret = __tmainCRTStartup ();
 #ifdef SEH_INLINE_ASM
   asm ("\tnop\n"
@@ -198,7 +198,7 @@ int mainCRTStartup (void)
 #ifdef SEH_INLINE_ASM
   asm ("\t.l_start:\n");
 #endif
-  mingw_app_type = 0;
+  __mingw_app_type = 0;
   ret = __tmainCRTStartup ();
 #ifdef SEH_INLINE_ASM
   asm ("\tnop\n"
@@ -226,7 +226,7 @@ __tmainCRTStartup (void)
   WINBOOL inDoubleQuote = FALSE;
   memset (&StartupInfo, 0, sizeof (STARTUPINFO));
 
-  if (mingw_app_type)
+  if (__mingw_app_type)
     GetStartupInfo (&StartupInfo);
   {
     void *lock_free = NULL;
@@ -304,7 +304,7 @@ __tmainCRTStartup (void)
 	__mingw_winmain_lpCmdLine = lpszCommandLine;
       }
 
-    if (mingw_app_type)
+    if (__mingw_app_type)
       {
 	__mingw_winmain_nShowCmd = StartupInfo.dwFlags & STARTF_USESHOWWINDOW ?
 				    StartupInfo.wShowWindow : SW_SHOWDEFAULT;
@@ -329,10 +329,9 @@ __tmainCRTStartup (void)
   return mainret;
 }
 
-extern int mingw_initltsdrot_force;
-extern int mingw_initltsdyn_force;
-extern int mingw_initltssuo_force;
-extern int mingw_initcharmax;
+extern int __mingw_initltsdrot_force;
+extern int __mingw_initltsdyn_force;
+extern int __mingw_initltssuo_force;
 
 static int __cdecl
 check_managed_app (void)
@@ -343,10 +342,9 @@ check_managed_app (void)
   PIMAGE_OPTIONAL_HEADER64 pNTHeader64;
 
   /* Force to be linked.  */
-  mingw_initltsdrot_force=1;
-  mingw_initltsdyn_force=1;
-  mingw_initltssuo_force=1;
-  mingw_initcharmax=1;
+  __mingw_initltsdrot_force=1;
+  __mingw_initltsdyn_force=1;
+  __mingw_initltssuo_force=1;
 
   pDOSHeader = (PIMAGE_DOS_HEADER) &__ImageBase;
   if (pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE)
lib/libc/mingw/crt/mingw_helpers.c
@@ -5,4 +5,4 @@
  */
 
 /* 0:console, 1:windows.  */
-int mingw_app_type = 0;
+int __mingw_app_type = 0;
lib/libc/mingw/crt/pseudo-reloc.c
@@ -21,6 +21,7 @@
 #include <stdarg.h>
 #include <memory.h>
 #include <internal.h>
+#include <stdint.h>
 
 #if defined(__CYGWIN__)
 #include <wchar.h>
@@ -47,7 +48,7 @@
 
 extern char __RUNTIME_PSEUDO_RELOC_LIST__;
 extern char __RUNTIME_PSEUDO_RELOC_LIST_END__;
-extern char __MINGW_LSYMBOL(_image_base__);
+extern IMAGE_DOS_HEADER __MINGW_LSYMBOL(_image_base__);
 
 void _pei386_runtime_relocator (void);
 
@@ -311,6 +312,7 @@ do_pseudo_reloc (void * start, void * end, void * base)
   ptrdiff_t reloc_target = (ptrdiff_t) ((char *)end - (char*)start);
   runtime_pseudo_reloc_v2 *v2_hdr = (runtime_pseudo_reloc_v2 *) start;
   runtime_pseudo_reloc_item_v2 *r;
+  unsigned int bits;
 
   /* A valid relocation list will contain at least one entry, and
    * one v1 data structure (the smallest one) requires two DWORDs.
@@ -440,6 +442,23 @@ do_pseudo_reloc (void * start, void * end, void * base)
       reldata -= ((ptrdiff_t) base + r->sym);
       reldata += addr_imp;
 
+      bits = r->flags & 0xff;
+      if (bits < sizeof(ptrdiff_t)*8)
+        {
+          /* Check for overflows. We don't know if the target address is
+           * interpreted as a relative offset or as a truncated absolute
+           * address - to avoid false positives, allow offsets within the
+           * whole range of signed and unsigned N bits numbers, but error
+           * out for anything outside of that. Thus for relative offsets,
+           * this won't catch offsets that are only barely too large. */
+          ptrdiff_t max_unsigned = (1LL << bits) - 1;
+          ptrdiff_t min_signed = UINTPTR_MAX << (bits - 1);
+          if (reldata > max_unsigned || reldata < min_signed)
+	    __report_error ("%d bit pseudo relocation at %p out of range, "
+                            "targeting %p, yielding the value %p.\n",
+                            bits, reloc_target, addr_imp, reldata);
+        }
+
       /* Write the new relocation value back to *reloc_target */
       switch ((r->flags & 0xff))
 	{
lib/libc/mingw/crt/tlssup.c
@@ -170,6 +170,6 @@ __dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
 _CRTALLOC(".CRT$XLD") PIMAGE_TLS_CALLBACK __xl_d = (PIMAGE_TLS_CALLBACK) __dyn_tls_dtor;
 
 
-int mingw_initltsdrot_force = 0;
-int mingw_initltsdyn_force = 0;
-int mingw_initltssuo_force = 0;
+int __mingw_initltsdrot_force = 0;
+int __mingw_initltsdyn_force = 0;
+int __mingw_initltssuo_force = 0;
lib/libc/mingw/gdtoa/strtopx.c
@@ -127,4 +127,18 @@ long double __cdecl
 __mingw_strtold (const char * __restrict__ src, char ** __restrict__ endptr)
   __attribute__((alias("__strtold")));
 
+long double __cdecl
+strtold (const char * __restrict__ src, char ** __restrict__ endptr)
+  __attribute__((alias("__strtold")));
+
+#elif defined(__arm__) || defined(__aarch64__) || defined(_ARM_) || defined(_ARM64_)
+/* For ARM, where long double == double, provide the long double function as
+ * an alias for __strtod. Do this in a separate object file from other
+ * functions, to avoid linker conflicts if object files import both 'strtold'
+ * from libucrt*.a and the object file providing '__strtod'. */
+long double __cdecl
+strtold (const char * __restrict__ src, char ** __restrict__ endptr)
+{
+  return __mingw_strtod(src, endptr);
+}
 #endif
lib/libc/mingw/include/config.h
@@ -1,18 +1,15 @@
 /* config.h.  Generated from config.h.in by configure.  */
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
-/* Whether the linker provides __CTOR_LIST__ */
-#define HAVE_CTOR_LIST 1
-
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
 
@@ -52,7 +49,9 @@
 /* Define to the version of this package. */
 #define PACKAGE_VERSION "4.0b"
 
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
 #define STDC_HEADERS 1
 
 /* Version number of package */
lib/libc/mingw/include/msvcrt.h
@@ -1,7 +1,7 @@
 #include <winbase.h>
 
-#ifndef __LIBMSVCRT__
-#error "This file should only be used in libmsvcrt.a"
+#ifndef __LIBMSVCRT_OS__
+#error "This file should only be used in libmsvcrt-os.a"
 #endif
 
 static inline HANDLE __mingw_get_msvcrt_handle(void)
lib/libc/mingw/lib64/bthprops.def → lib/libc/mingw/lib-common/bthprops.def
File renamed without changes
lib/libc/mingw/libarm32/fwpuclnt.def → lib/libc/mingw/lib-common/fwpuclnt.def
@@ -1,7 +1,7 @@
 ;
 ; Definition file of fwpuclnt.dll
 ; Automatic generated by gendef
-; written by Kai Tietz 2008-2014
+; written by Kai Tietz 2008
 ;
 LIBRARY "fwpuclnt.dll"
 EXPORTS
@@ -9,12 +9,14 @@ FwpiExpandCriteria0
 FwpiFreeCriteria0
 FwpiVpnTriggerAddAppSids
 FwpiVpnTriggerAddFilePaths
+FwpiVpnTriggerAddSecurityDescriptor
 FwpiVpnTriggerConfigureParameters
 FwpiVpnTriggerEventSubscribe0
 FwpiVpnTriggerEventUnsubscribe0
 FwpiVpnTriggerInitializeNrptTriggering
 FwpiVpnTriggerRemoveAppSids
 FwpiVpnTriggerRemoveFilePaths
+FwpiVpnTriggerRemoveSecurityDescriptor
 FwpiVpnTriggerResetNrptTriggering
 FwpiVpnTriggerSetStateDisconnected
 FwpiVpnTriggerUninitializeNrptTriggering
@@ -40,6 +42,8 @@ FwpmConnectionSetSecurityInfo0
 FwpmConnectionSubscribe0
 FwpmConnectionUnsubscribe0
 FwpmDiagnoseNetFailure0
+FwpmDynamicKeywordSubscribe0
+FwpmDynamicKeywordUnsubscribe0
 FwpmEngineClose0
 FwpmEngineGetOption0
 FwpmEngineGetSecurityInfo0
@@ -49,6 +53,7 @@ FwpmEngineSetSecurityInfo0
 FwpmEventProviderCreate0
 FwpmEventProviderDestroy0
 FwpmEventProviderFireNetEvent0
+FwpmEventProviderFireNetEventEx0
 FwpmEventProviderIsNetEventTypeEnabled0
 FwpmFilterAdd0
 FwpmFilterCreateEnumHandle0
@@ -66,9 +71,15 @@ FwpmFilterUnsubscribeChanges0
 FwpmFreeMemory0
 FwpmGetAppIdFromFileName0
 FwpmGetSidFromOnlineId0
+FwpmIPsecS2STunnelAddConditions0
+FwpmIPsecS2STunnelAddInterfaceToCompartment0
+FwpmIPsecS2STunnelGetInterfaceForCompartment0
+FwpmIPsecS2STunnelRemoveConditions0
+FwpmIPsecS2STunnelRemoveInterfaceFromCompartment0
 FwpmIPsecTunnelAdd0
 FwpmIPsecTunnelAdd1
 FwpmIPsecTunnelAdd2
+FwpmIPsecTunnelAdd3
 FwpmIPsecTunnelAddConditions0
 FwpmIPsecTunnelDeleteByKey0
 FwpmLayerCreateEnumHandle0
@@ -79,12 +90,19 @@ FwpmLayerGetByKey0
 FwpmLayerGetSecurityInfoByKey0
 FwpmLayerSetSecurityInfoByKey0
 FwpmNetEventCreateEnumHandle0
+FwpmNetEventCreateEnumHandleEx
 FwpmNetEventDestroyEnumHandle0
 FwpmNetEventEnum0
 FwpmNetEventEnum1
 FwpmNetEventEnum2
+FwpmNetEventEnum3
+FwpmNetEventEnum4
+FwpmNetEventEnum5
 FwpmNetEventSubscribe0
 FwpmNetEventSubscribe1
+FwpmNetEventSubscribe2
+FwpmNetEventSubscribe3
+FwpmNetEventSubscribe4
 FwpmNetEventSubscriptionsGet0
 FwpmNetEventUnsubscribe0
 FwpmNetEventsGetSecurityInfo0
@@ -95,6 +113,7 @@ FwpmProviderAdd0
 FwpmProviderContextAdd0
 FwpmProviderContextAdd1
 FwpmProviderContextAdd2
+FwpmProviderContextAdd3
 FwpmProviderContextCreateEnumHandle0
 FwpmProviderContextDeleteById0
 FwpmProviderContextDeleteByKey0
@@ -102,12 +121,15 @@ FwpmProviderContextDestroyEnumHandle0
 FwpmProviderContextEnum0
 FwpmProviderContextEnum1
 FwpmProviderContextEnum2
+FwpmProviderContextEnum3
 FwpmProviderContextGetById0
 FwpmProviderContextGetById1
 FwpmProviderContextGetById2
+FwpmProviderContextGetById3
 FwpmProviderContextGetByKey0
 FwpmProviderContextGetByKey1
 FwpmProviderContextGetByKey2
+FwpmProviderContextGetByKey3
 FwpmProviderContextGetSecurityInfoByKey0
 FwpmProviderContextSetSecurityInfoByKey0
 FwpmProviderContextSubscribeChanges0
@@ -149,6 +171,10 @@ FwpmvSwitchEventUnsubscribe0
 FwpmvSwitchEventsGetSecurityInfo0
 FwpmvSwitchEventsSetSecurityInfo0
 FwppConnectionGetByIPsecInfo
+FwppConnectionGetByS2STunnelId
+FwppConnectionGetS2STunnelId
+FwppGetMD5HashBytes
+FwppIPsecSaContextCreate
 FwpsAleEndpointCreateEnumHandle0
 FwpsAleEndpointDestroyEnumHandle0
 FwpsAleEndpointEnum0
lib/libc/mingw/lib64/glu32.def → lib/libc/mingw/lib-common/glu32.def
File renamed without changes
lib/libc/mingw/lib-common/msvcrt.def.in
@@ -930,7 +930,7 @@ _scalb
 F_X64(_scalbf)
 _scanf_l
 _scanf_s_l
-_scprintf
+F_NON_I386(_scprintf) ; i386 _scprintf replaced by emu
 _scprintf_l
 _scprintf_p_l
 _scwprintf
@@ -1111,7 +1111,7 @@ _vprintf_l
 _vprintf_p
 _vprintf_p_l
 _vprintf_s_l
-_vscprintf
+F_NON_I386(_vscprintf) ; i386 _vscprintf replaced by emu
 _vscprintf_l
 _vscprintf_p_l
 _vscwprintf
lib/libc/mingw/lib-common/mswsock.def
@@ -22,6 +22,8 @@ MigrateWinsockConfiguration
 MigrateWinsockConfigurationEx
 NPLoadNameSpaces
 NSPStartup
+; MSDN says ProcessSocketNotifications is from ws2_32.dll, not mswsock.dll
+; ProcessSocketNotifications
 SetServiceA
 SetServiceW
 StartWsdpService
lib/libc/mingw/lib-common/ntdll.def.in
@@ -256,6 +256,7 @@ NtAccessCheckByTypeAndAuditAlarm
 NtAccessCheckByTypeResultList
 NtAccessCheckByTypeResultListAndAuditAlarm
 NtAccessCheckByTypeResultListAndAuditAlarmByHandle
+NtAcquireCrossVmMutant
 NtAcquireProcessActivityReference
 NtAddAtom
 NtAddAtomEx
@@ -310,6 +311,8 @@ NtCancelSynchronousIoFile
 NtCancelTimer
 NtCancelTimer2
 NtCancelWaitCompletionPacket
+NtChangeProcessState
+NtChangeThreadState
 NtClearEvent
 NtClose
 NtCloseObjectAuditAlarm
@@ -325,8 +328,10 @@ NtCompleteConnectPort
 NtCompressKey
 NtConnectPort
 NtContinue
+NtContinueEx
 NtConvertBetweenAuxiliaryCounterAndPerformanceCounter
 NtCreateCrossVmEvent
+NtCreateCrossVmMutant
 NtCreateDebugObject
 NtCreateDirectoryObject
 NtCreateDirectoryObjectEx
@@ -337,6 +342,7 @@ NtCreateEventPair
 NtCreateFile
 NtCreateIRTimer
 NtCreateIoCompletion
+NtCreateIoRing
 NtCreateJobObject
 NtCreateJobSet
 NtCreateKey
@@ -352,6 +358,7 @@ NtCreatePort
 NtCreatePrivateNamespace
 NtCreateProcess
 NtCreateProcessEx
+NtCreateProcessStateChange
 NtCreateProfile
 NtCreateProfileEx
 NtCreateRegistryTransaction
@@ -362,6 +369,7 @@ NtCreateSemaphore
 NtCreateSymbolicLinkObject
 NtCreateThread
 NtCreateThreadEx
+NtCreateThreadStateChange
 NtCreateTimer
 NtCreateTimer2
 NtCreateToken
@@ -387,6 +395,7 @@ NtDeleteValueKey
 NtDeleteWnfStateData
 NtDeleteWnfStateName
 NtDeviceIoControlFile
+NtDirectGraphicsCall
 NtDisableLastKnownGood
 NtDisplayString
 NtDrawText
@@ -543,6 +552,7 @@ NtQueryInformationWorkerFactory
 NtQueryInstallUILanguage
 NtQueryIntervalProfile
 NtQueryIoCompletion
+NtQueryIoRingCapabilities
 NtQueryKey
 NtQueryLicenseValue
 NtQueryMultipleValueKey
@@ -573,6 +583,7 @@ NtQueryWnfStateData
 NtQueryWnfStateNameInformation
 NtQueueApcThread
 NtQueueApcThreadEx
+NtQueueApcThreadEx2
 NtRaiseException
 NtRaiseHardError
 NtReadFile
@@ -580,6 +591,7 @@ NtReadFileScatter
 NtReadOnlyEnlistment
 NtReadRequestData
 NtReadVirtualMemory
+NtReadVirtualMemoryEx
 NtRecoverEnlistment
 NtRecoverResourceManager
 NtRecoverTransactionManager
@@ -639,6 +651,7 @@ NtSetIRTimer
 NtSetInformationDebugObject
 NtSetInformationEnlistment
 NtSetInformationFile
+NtSetInformationIoRing
 NtSetInformationJobObject
 NtSetInformationKey
 NtSetInformationObject
@@ -679,6 +692,7 @@ NtSignalAndWaitForSingleObject
 NtSinglePhaseReject
 NtStartProfile
 NtStopProfile
+NtSubmitIoRing
 NtSubscribeWnfStateChange
 NtSuspendProcess
 NtSuspendThread
@@ -836,6 +850,7 @@ RtlCanonicalizeDomainName
 RtlCapabilityCheck
 RtlCapabilityCheckForSingleSessionSku
 RtlCaptureContext
+RtlCaptureContext2
 RtlCaptureStackBackTrace
 RtlCharToInteger
 RtlCheckBootStatusIntegrity
@@ -864,6 +879,8 @@ RtlCommitDebugInfo
 RtlCommitMemoryStream
 RtlCompactHeap
 RtlCompareAltitudes
+RtlCompareExchangePointerMapping
+RtlCompareExchangePropertyStore
 RtlCompareMemory
 RtlCompareMemoryUlong
 RtlCompareString
@@ -877,6 +894,7 @@ RtlComputePrivatizedDllName_U
 RtlConnectToSm
 RtlConsoleMultiByteToUnicodeN
 RtlConstructCrossVmEventPath
+RtlConstructCrossVmMutexPath
 RtlContractHashTable
 RtlConvertDeviceFamilyInfoToString
 RtlConvertExclusiveToShared
@@ -957,6 +975,7 @@ RtlDecompressBuffer
 RtlDecompressBufferEx
 RtlDecompressFragment
 RtlDefaultNpAcl
+RtlDelayExecution
 RtlDelete
 RtlDeleteAce
 RtlDeleteAtomFromAtomTable
@@ -1071,6 +1090,7 @@ RtlFindActivationContextSectionString
 RtlFindCharInUnicodeString
 RtlFindClearBits
 RtlFindClearBitsAndSet
+RtlFindClearBitsAndSetEx
 F_X64(RtlFindClearBitsEx)
 RtlFindClearRuns
 RtlFindClosestEncodableLength
@@ -1149,6 +1169,7 @@ RtlGetFullPathName_UEx
 RtlGetFullPathName_UstrEx
 RtlGetFunctionTableListHead
 RtlGetGroupSecurityDescriptor
+RtlGetImageFileMachines
 RtlGetIntegerAtom
 RtlGetInterruptTimePrecise
 RtlGetLastNtStatus
@@ -1172,6 +1193,7 @@ RtlGetPersistedStateLocation
 RtlGetProcessHeaps
 RtlGetProcessPreferredUILanguages
 RtlGetProductInfo
+RtlGetReturnAddressHijackTarget
 RtlGetSaclSecurityDescriptor
 RtlGetSearchPath
 RtlGetSecurityDescriptorRMControl
@@ -1180,7 +1202,9 @@ RtlGetSetBootStatusData
 RtlGetSuiteMask
 RtlGetSystemBootStatus
 RtlGetSystemBootStatusEx
+RtlGetSystemGlobalData
 RtlGetSystemPreferredUILanguages
+RtlGetSystemTimeAndBias
 RtlGetSystemTimePrecise
 RtlGetThreadErrorMode
 RtlGetThreadLangIdByIndex
@@ -1282,6 +1306,7 @@ RtlIpv6StringToAddressExA
 RtlIpv6StringToAddressExW
 RtlIpv6StringToAddressW
 RtlIsActivationContextActive
+RtlIsApiSetImplemented
 RtlIsCapabilitySid
 RtlIsCloudFilesPlaceholder
 RtlIsCriticalSectionLocked
@@ -1290,7 +1315,9 @@ RtlIsCurrentProcess
 RtlIsCurrentThread
 RtlIsCurrentThreadAttachExempt
 RtlIsDosDeviceName_U
+RtlIsEcCode
 RtlIsElevatedRid
+RtlIsEnclaveFeaturePresent
 RtlIsGenericTableEmpty
 RtlIsGenericTableEmptyAvl
 RtlIsMultiSessionSku
@@ -1364,6 +1391,7 @@ RtlNewSecurityObjectWithMultipleInheritance
 RtlNormalizeProcessParams
 F_X86_ANY(RtlNormalizeSecurityDescriptor)
 RtlNormalizeString
+RtlNotifyFeatureUsage
 RtlNtPathNameToDosPathName
 RtlNtStatusToDosError
 RtlNtStatusToDosErrorNoTeb
@@ -1380,6 +1408,7 @@ RtlNumberOfSetBitsUlongPtr
 RtlOemStringToUnicodeSize
 RtlOemStringToUnicodeString
 RtlOemToUnicodeN
+RtlOpenCrossProcessEmulatorWorkConnection
 RtlOpenCurrentUser
 RtlOsDeploymentState
 RtlOwnerAcesPresent
@@ -1394,6 +1423,7 @@ RtlProtectHeap
 RtlPublishWnfStateData
 RtlPushFrame
 RtlQueryActivationContextApplicationSettings
+RtlQueryAllFeatureConfigurations
 RtlQueryAtomInAtomTable
 RtlQueryCriticalSectionOwner
 RtlQueryDepthSList
@@ -1401,6 +1431,9 @@ RtlQueryDynamicTimeZoneInformation
 RtlQueryElevationFlags
 RtlQueryEnvironmentVariable
 RtlQueryEnvironmentVariable_U
+RtlQueryFeatureConfiguration
+RtlQueryFeatureConfigurationChangeStamp
+RtlQueryFeatureUsageNotificationSubscriptions
 RtlQueryHeapInformation
 RtlQueryImageMitigationPolicy
 RtlQueryInformationAcl
@@ -1413,11 +1446,13 @@ RtlQueryPackageIdentity
 RtlQueryPackageIdentityEx
 RtlQueryPerformanceCounter
 RtlQueryPerformanceFrequency
+RtlQueryPointerMapping
 RtlQueryProcessBackTraceInformation
 RtlQueryProcessDebugInformation
 RtlQueryProcessHeapInformation
 RtlQueryProcessLockInformation
 RtlQueryProcessPlaceholderCompatibilityMode
+RtlQueryPropertyStore
 RtlQueryProtectedPolicy
 RtlQueryRegistryValueWithFallback
 RtlQueryRegistryValues
@@ -1439,6 +1474,7 @@ RtlQueueApcWow64Thread
 RtlQueueWorkItem
 RtlRaiseCustomSystemEventTrigger
 RtlRaiseException
+RtlRaiseNoncontinuableException
 RtlRaiseStatus
 RtlRandom
 RtlRandomEx
@@ -1450,6 +1486,7 @@ RtlReadOutOfProcessMemoryStream
 RtlReadThreadProfilingData
 RtlRealPredecessor
 RtlRealSuccessor
+RtlRegisterFeatureConfigurationChangeNotification
 RtlRegisterForWnfMetaNotification
 RtlRegisterSecureMemoryCacheCallback
 RtlRegisterThreadWithCsrss
@@ -1465,7 +1502,9 @@ RtlReleaseSRWLockExclusive
 RtlReleaseSRWLockShared
 RtlRemoteCall
 RtlRemoveEntryHashTable
+RtlRemovePointerMapping
 RtlRemovePrivileges
+RtlRemovePropertyStore
 RtlRemoveVectoredContinueHandler
 RtlRemoveVectoredExceptionHandler
 RtlReplaceSidInSd
@@ -1515,6 +1554,7 @@ RtlSetEnvironmentStrings
 RtlSetEnvironmentVar
 RtlSetEnvironmentVariable
 RtlSetExtendedFeaturesMask
+RtlSetFeatureConfigurations
 RtlSetGroupSecurityDescriptor
 RtlSetHeapInformation
 RtlSetImageMitigationPolicy
@@ -1571,6 +1611,7 @@ RtlStringFromGUIDEx
 RtlStronglyEnumerateEntryHashTable
 RtlSubAuthorityCountSid
 RtlSubAuthoritySid
+RtlSubscribeForFeatureUsageNotification
 RtlSubscribeWnfStateChangeNotification
 RtlSubtreePredecessor
 RtlSubtreeSuccessor
@@ -1626,6 +1667,8 @@ RtlUnlockMemoryBlockLookaside
 RtlUnlockMemoryStreamRegion
 RtlUnlockMemoryZone
 RtlUnlockModuleSection
+RtlUnregisterFeatureConfigurationChangeNotification
+RtlUnsubscribeFromFeatureUsageNotifications
 RtlUnsubscribeWnfNotificationWaitForCompletion
 RtlUnsubscribeWnfNotificationWithCompletionCallback
 RtlUnsubscribeWnfStateChangeNotification
@@ -1659,6 +1702,7 @@ RtlValidateProcessHeaps
 RtlValidateUnicodeString
 RtlVerifyVersionInfo
 RtlVirtualUnwind
+RtlVirtualUnwind2
 RtlWaitForWnfMetaNotification
 RtlWaitOnAddress
 RtlWakeAddressAll
@@ -1674,6 +1718,8 @@ RtlWerpReportException
 RtlWnfCompareChangeStamp
 RtlWnfDllUnloadCallback
 RtlWow64CallFunction64
+RtlWow64ChangeProcessState
+RtlWow64ChangeThreadState
 RtlWow64EnableFsRedirection
 RtlWow64EnableFsRedirectionEx
 F64(RtlWow64GetCpuAreaInfo)
@@ -1870,6 +1916,7 @@ ZwAccessCheckByTypeAndAuditAlarm
 ZwAccessCheckByTypeResultList
 ZwAccessCheckByTypeResultListAndAuditAlarm
 ZwAccessCheckByTypeResultListAndAuditAlarmByHandle
+ZwAcquireCrossVmMutant
 ZwAcquireProcessActivityReference
 ZwAddAtom
 ZwAddAtomEx
@@ -1924,6 +1971,8 @@ ZwCancelSynchronousIoFile
 ZwCancelTimer
 ZwCancelTimer2
 ZwCancelWaitCompletionPacket
+ZwChangeProcessState
+ZwChangeThreadState
 ZwClearEvent
 ZwClose
 ZwCloseObjectAuditAlarm
@@ -1939,8 +1988,10 @@ ZwCompleteConnectPort
 ZwCompressKey
 ZwConnectPort
 ZwContinue
+ZwContinueEx
 ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter
 ZwCreateCrossVmEvent
+ZwCreateCrossVmMutant
 ZwCreateDebugObject
 ZwCreateDirectoryObject
 ZwCreateDirectoryObjectEx
@@ -1951,6 +2002,7 @@ ZwCreateEventPair
 ZwCreateFile
 ZwCreateIRTimer
 ZwCreateIoCompletion
+ZwCreateIoRing
 ZwCreateJobObject
 ZwCreateJobSet
 ZwCreateKey
@@ -1966,6 +2018,7 @@ ZwCreatePort
 ZwCreatePrivateNamespace
 ZwCreateProcess
 ZwCreateProcessEx
+ZwCreateProcessStateChange
 ZwCreateProfile
 ZwCreateProfileEx
 ZwCreateRegistryTransaction
@@ -1976,6 +2029,7 @@ ZwCreateSemaphore
 ZwCreateSymbolicLinkObject
 ZwCreateThread
 ZwCreateThreadEx
+ZwCreateThreadStateChange
 ZwCreateTimer
 ZwCreateTimer2
 ZwCreateToken
@@ -2001,6 +2055,7 @@ ZwDeleteValueKey
 ZwDeleteWnfStateData
 ZwDeleteWnfStateName
 ZwDeviceIoControlFile
+ZwDirectGraphicsCall
 ZwDisableLastKnownGood
 ZwDisplayString
 ZwDrawText
@@ -2156,6 +2211,7 @@ ZwQueryInformationWorkerFactory
 ZwQueryInstallUILanguage
 ZwQueryIntervalProfile
 ZwQueryIoCompletion
+ZwQueryIoRingCapabilities
 ZwQueryKey
 ZwQueryLicenseValue
 ZwQueryMultipleValueKey
@@ -2186,6 +2242,7 @@ ZwQueryWnfStateData
 ZwQueryWnfStateNameInformation
 ZwQueueApcThread
 ZwQueueApcThreadEx
+ZwQueueApcThreadEx2
 ZwRaiseException
 ZwRaiseHardError
 ZwReadFile
@@ -2193,6 +2250,7 @@ ZwReadFileScatter
 ZwReadOnlyEnlistment
 ZwReadRequestData
 ZwReadVirtualMemory
+ZwReadVirtualMemoryEx
 ZwRecoverEnlistment
 ZwRecoverResourceManager
 ZwRecoverTransactionManager
@@ -2252,6 +2310,7 @@ ZwSetIRTimer
 ZwSetInformationDebugObject
 ZwSetInformationEnlistment
 ZwSetInformationFile
+ZwSetInformationIoRing
 ZwSetInformationJobObject
 ZwSetInformationKey
 ZwSetInformationObject
@@ -2292,6 +2351,7 @@ ZwSignalAndWaitForSingleObject
 ZwSinglePhaseReject
 ZwStartProfile
 ZwStopProfile
+ZwSubmitIoRing
 ZwSubscribeWnfStateChange
 ZwSuspendProcess
 ZwSuspendThread
lib/libc/mingw/lib64/opengl32.def → lib/libc/mingw/lib-common/opengl32.def
File renamed without changes
lib/libc/mingw/lib-common/query.def
@@ -0,0 +1,17 @@
+;
+; Definition file of query.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "query.dll"
+EXPORTS
+LoadBinaryFilter
+LoadTextFilter
+BindIFilterFromStorage
+BindIFilterFromStream
+DllCanUnloadNow
+DllGetClassObject
+DllRegisterServer
+DllUnregisterServer
+LoadIFilter
+LoadIFilterEx
lib/libc/mingw/lib-common/tbs.def
@@ -11,10 +11,12 @@ GetDeviceID
 GetDeviceIDString
 GetDeviceIDWithTimeout
 Tbsi_Context_Create
+Tbsi_Create_Windows_Key
 Tbsi_FilterLog
 Tbsi_GetDeviceInfo
 Tbsi_Get_OwnerAuth
 Tbsi_Get_TCG_Log
+Tbsi_Get_TCG_Log_Ex
 Tbsi_Physical_Presence_Command
 Tbsi_Revoke_Attestation
 Tbsi_ShaHash
@@ -22,4 +24,5 @@ Tbsip_Cancel_Commands
 Tbsip_Context_Close
 Tbsip_Submit_Command
 Tbsip_Submit_Command_NonBlocking
+Tbsip_TestInterruptInformation
 Tbsip_TestMorBit
lib/libc/mingw/lib-common/ws2_32.def.in
@@ -38,6 +38,7 @@ GetHostNameW
 GetNameInfoW
 InetNtopW
 InetPtonW
+ProcessSocketNotifications
 SetAddrInfoExA
 SetAddrInfoExW
 WPUCompleteOverlappedRequest
lib/libc/mingw/lib32/authz.def
@@ -8,26 +8,38 @@ EXPORTS
 AuthzAccessCheck@36
 AuthzAddSidsToContext@24
 AuthzCachedAccessCheck@20
+AuthzComputeEffectivePermission@60
 AuthzEnumerateSecurityEventSources@16
 AuthzEvaluateSacl@24
 AuthzFreeAuditEvent@4
+AuthzFreeCentralAccessPolicyCache@0
 AuthzFreeContext@4
 AuthzFreeHandle@4
 AuthzFreeResourceManager@4
 AuthzGetInformationFromContext@20
+AuthzInitializeCompoundContext@12
 AuthzInitializeContextFromAuthzContext@28
 AuthzInitializeContextFromSid@32
 AuthzInitializeContextFromToken@32
-AuthzInitializeObjectAccessAuditEvent
-AuthzInitializeObjectAccessAuditEvent2
+AuthzInitializeObjectAccessAuditEvent@0
+AuthzInitializeObjectAccessAuditEvent2@0
+AuthzInitializeRemoteAccessCheck@4
+AuthzInitializeRemoteResourceManager@8
 AuthzInitializeResourceManager@24
+AuthzInitializeResourceManagerEx@12
 AuthzInstallSecurityEventSource@8
+AuthzModifyClaims@16
 AuthzModifySecurityAttributes@12
+AuthzModifySids@16
 AuthzOpenObjectAudit@32
+AuthzRegisterCapChangeNotification@12
 AuthzRegisterSecurityEventSource@12
-AuthzReportSecurityEvent
+AuthzReportSecurityEvent@0
 AuthzReportSecurityEventFromParams@20
+AuthzSetAppContainerInformation@16
+AuthzShutdownRemoteAccessCheck@0
 AuthzUninstallSecurityEventSource@8
+AuthzUnregisterCapChangeNotification@4
 AuthzUnregisterSecurityEventSource@8
 AuthziAccessCheckEx@40
 AuthziAllocateAuditParams@8
@@ -38,9 +50,9 @@ AuthziFreeAuditQueue@4
 AuthziGenerateAdminAlertAuditW@16
 AuthziInitializeAuditEvent@44
 AuthziInitializeAuditEventType@20
-AuthziInitializeAuditParams
+AuthziInitializeAuditParams@0
 AuthziInitializeAuditParamsFromArray@20
-AuthziInitializeAuditParamsWithRM
+AuthziInitializeAuditParamsWithRM@0
 AuthziInitializeAuditQueue@20
 AuthziInitializeContextFromSid@32
 AuthziLogAuditEvent@12
@@ -48,6 +60,18 @@ AuthziModifyAuditEvent2@32
 AuthziModifyAuditEvent@28
 AuthziModifyAuditEventType@20
 AuthziModifyAuditQueue@24
+AuthziQueryAuditPolicy@0
+AuthziSetAuditPolicy@0
 AuthziModifySecurityAttributes@12
 AuthziQuerySecurityAttributes@24
-AuthziSourceAudit
+AuthziSourceAudit@0
+FreeClaimDefinitions@8
+FreeClaimDictionary@4
+GenerateNewCAPID@4
+GetCentralAccessPoliciesByCapID@28
+GetCentralAccessPoliciesByDN@20
+GetClaimDefinitions@16
+GetClaimDomainInfo@12
+GetDefaultCAPESecurityDescriptor@4
+InitializeClaimDictionary@12
+RefreshClaimDictionary@4
lib/libc/mingw/lib32/fwpuclnt.def
@@ -5,6 +5,21 @@
 ;
 LIBRARY "fwpuclnt.dll"
 EXPORTS
+FwpiExpandCriteria0@20
+FwpiFreeCriteria0@8
+FwpiVpnTriggerAddAppSids@12
+FwpiVpnTriggerAddFilePaths@12
+FwpiVpnTriggerAddSecurityDescriptor@8
+FwpiVpnTriggerConfigureParameters@8
+FwpiVpnTriggerEventSubscribe0@20
+FwpiVpnTriggerEventUnsubscribe0@8
+FwpiVpnTriggerInitializeNrptTriggering@8
+FwpiVpnTriggerRemoveAppSids@4
+FwpiVpnTriggerRemoveFilePaths@4
+FwpiVpnTriggerRemoveSecurityDescriptor@4
+FwpiVpnTriggerResetNrptTriggering@4
+FwpiVpnTriggerSetStateDisconnected@8
+FwpiVpnTriggerUninitializeNrptTriggering@4
 FwpmCalloutAdd0@16
 FwpmCalloutCreateEnumHandle0@12
 FwpmCalloutDeleteById0@8
@@ -18,7 +33,17 @@ FwpmCalloutSetSecurityInfoByKey0@28
 FwpmCalloutSubscribeChanges0@20
 FwpmCalloutSubscriptionsGet0@12
 FwpmCalloutUnsubscribeChanges0@8
+FwpmConnectionCreateEnumHandle0@12
+FwpmConnectionDestroyEnumHandle0@8
+FwpmConnectionEnum0@20
+FwpmConnectionGetById0@16
+FwpmConnectionGetSecurityInfo0@28
+FwpmConnectionSetSecurityInfo0@24
+FwpmConnectionSubscribe0@20
+FwpmConnectionUnsubscribe0@8
 FwpmDiagnoseNetFailure0@12
+FwpmDynamicKeywordSubscribe0@16
+FwpmDynamicKeywordUnsubscribe0@4
 FwpmEngineClose0@4
 FwpmEngineGetOption0@12
 FwpmEngineGetSecurityInfo0@28
@@ -27,7 +52,8 @@ FwpmEngineSetOption0@12
 FwpmEngineSetSecurityInfo0@24
 FwpmEventProviderCreate0@8
 FwpmEventProviderDestroy0@4
-FwpmEventProviderFireNetEvent0@12
+FwpmEventProviderFireNetEvent0@16
+FwpmEventProviderFireNetEventEx0@20
 FwpmEventProviderIsNetEventTypeEnabled0@12
 FwpmFilterAdd0@16
 FwpmFilterCreateEnumHandle0@12
@@ -44,7 +70,17 @@ FwpmFilterSubscriptionsGet0@12
 FwpmFilterUnsubscribeChanges0@8
 FwpmFreeMemory0@4
 FwpmGetAppIdFromFileName0@8
+FwpmGetSidFromOnlineId0@8
+FwpmIPsecS2STunnelAddConditions0@28
+FwpmIPsecS2STunnelAddInterfaceToCompartment0@12
+FwpmIPsecS2STunnelGetInterfaceForCompartment0@12
+FwpmIPsecS2STunnelRemoveConditions0@28
+FwpmIPsecS2STunnelRemoveInterfaceFromCompartment0@8
 FwpmIPsecTunnelAdd0@28
+FwpmIPsecTunnelAdd1@32
+FwpmIPsecTunnelAdd2@32
+FwpmIPsecTunnelAdd3@32
+FwpmIPsecTunnelAddConditions0@20
 FwpmIPsecTunnelDeleteByKey0@8
 FwpmLayerCreateEnumHandle0@12
 FwpmLayerDestroyEnumHandle0@8
@@ -54,19 +90,46 @@ FwpmLayerGetByKey0@12
 FwpmLayerGetSecurityInfoByKey0@32
 FwpmLayerSetSecurityInfoByKey0@28
 FwpmNetEventCreateEnumHandle0@12
+FwpmNetEventCreateEnumHandleEx@16
 FwpmNetEventDestroyEnumHandle0@8
 FwpmNetEventEnum0@20
+FwpmNetEventEnum1@20
+FwpmNetEventEnum2@20
+FwpmNetEventEnum3@20
+FwpmNetEventEnum4@20
+FwpmNetEventEnum5@20
+FwpmNetEventSubscribe0@20
+FwpmNetEventSubscribe1@20
+FwpmNetEventSubscribe2@20
+FwpmNetEventSubscribe3@20
+FwpmNetEventSubscribe4@20
+FwpmNetEventSubscriptionsGet0@12
+FwpmNetEventUnsubscribe0@8
 FwpmNetEventsGetSecurityInfo0@28
+FwpmNetEventsLost0@8
 FwpmNetEventsSetSecurityInfo0@24
+FwpmProcessNameResolutionEvent0@16
 FwpmProviderAdd0@12
 FwpmProviderContextAdd0@16
+FwpmProviderContextAdd1@16
+FwpmProviderContextAdd2@16
+FwpmProviderContextAdd3@16
 FwpmProviderContextCreateEnumHandle0@12
 FwpmProviderContextDeleteById0@12
 FwpmProviderContextDeleteByKey0@8
 FwpmProviderContextDestroyEnumHandle0@8
 FwpmProviderContextEnum0@20
+FwpmProviderContextEnum1@20
+FwpmProviderContextEnum2@20
+FwpmProviderContextEnum3@20
 FwpmProviderContextGetById0@16
+FwpmProviderContextGetById1@16
+FwpmProviderContextGetById2@16
+FwpmProviderContextGetById3@16
 FwpmProviderContextGetByKey0@12
+FwpmProviderContextGetByKey1@12
+FwpmProviderContextGetByKey2@12
+FwpmProviderContextGetByKey3@12
 FwpmProviderContextGetSecurityInfoByKey0@32
 FwpmProviderContextSetSecurityInfoByKey0@28
 FwpmProviderContextSubscribeChanges0@20
@@ -96,51 +159,127 @@ FwpmSubLayerSetSecurityInfoByKey0@28
 FwpmSubLayerSubscribeChanges0@20
 FwpmSubLayerSubscriptionsGet0@12
 FwpmSubLayerUnsubscribeChanges0@8
+FwpmSystemPortsGet0@8
+FwpmSystemPortsSubscribe0@20
+FwpmSystemPortsUnsubscribe0@8
 FwpmTraceRestoreDefaults0@0
 FwpmTransactionAbort0@4
 FwpmTransactionBegin0@8
 FwpmTransactionCommit0@4
+FwpmvSwitchEventSubscribe0@20
+FwpmvSwitchEventUnsubscribe0@8
+FwpmvSwitchEventsGetSecurityInfo0@28
+FwpmvSwitchEventsSetSecurityInfo0@24
+FwppConnectionGetByIPsecInfo@20
+FwppConnectionGetByS2STunnelId@16
+FwppConnectionGetS2STunnelId@16
+FwppGetMD5HashBytes@16
+FwppIPsecSaContextCreate@36
+FwpsAleEndpointCreateEnumHandle0@12
+FwpsAleEndpointDestroyEnumHandle0@8
+FwpsAleEndpointEnum0@20
+FwpsAleEndpointGetById0@16
+FwpsAleEndpointGetSecurityInfo0@28
+FwpsAleEndpointSetSecurityInfo0@24
 FwpsAleExplicitCredentialsQuery0@16
+FwpsAleGetPortStatus0@12
 FwpsClassifyUser0@28
 FwpsFreeMemory0@4
 FwpsGetInProcReplicaOffset0@4
 FwpsLayerCreateInProcReplica0@8
 FwpsLayerReleaseInProcReplica0@8
 FwpsOpenToken0@20
+FwpsQueryIPsecDosFWUsed0@8
+FwpsQueryIPsecOffloadDone0@8
+GetUnifiedTraceHandle@4
+IPsecDospGetSecurityInfo0@28
+IPsecDospGetStatistics0@8
+IPsecDospSetSecurityInfo0@24
+IPsecDospStateCreateEnumHandle0@12
+IPsecDospStateDestroyEnumHandle0@8
+IPsecDospStateEnum0@20
+IPsecGetKeyFromDictator0@16
 IPsecGetStatistics0@8
+IPsecGetStatistics1@8
+IPsecKeyDictationCheck0@16
+IPsecKeyManagerAddAndRegister0@16
+IPsecKeyManagerGetSecurityInfoByKey0@32
+IPsecKeyManagerSetSecurityInfoByKey0@28
+IPsecKeyManagerUnregisterAndDelete0@8
+IPsecKeyManagersGet0@12
 IPsecKeyModuleAdd0@12
-IPsecKeyModuleCompleteAcquire0@16
 IPsecKeyModuleDelete0@8
+IPsecKeyModuleUpdateAcquire0@20
+IPsecKeyNotification0@12
 IPsecSaContextAddInbound0@16
+IPsecSaContextAddInbound1@16
+IPsecSaContextAddInboundAndTrackConnection@28
 IPsecSaContextAddOutbound0@16
+IPsecSaContextAddOutbound1@16
+IPsecSaContextAddOutboundAndTrackConnection@28
 IPsecSaContextCreate0@16
+IPsecSaContextCreate1@20
 IPsecSaContextCreateEnumHandle0@12
 IPsecSaContextDeleteById0@12
 IPsecSaContextDestroyEnumHandle0@8
 IPsecSaContextEnum0@20
+IPsecSaContextEnum1@20
 IPsecSaContextExpire0@12
 IPsecSaContextGetById0@16
+IPsecSaContextGetById1@16
 IPsecSaContextGetSpi0@20
+IPsecSaContextGetSpi1@20
+IPsecSaContextSetSpi0@20
+IPsecSaContextSubscribe0@20
+IPsecSaContextSubscriptionsGet0@12
+IPsecSaContextUnsubscribe0@8
+IPsecSaContextUpdate0@16
 IPsecSaCreateEnumHandle0@12
 IPsecSaDbGetSecurityInfo0@28
 IPsecSaDbSetSecurityInfo0@24
 IPsecSaDestroyEnumHandle0@8
 IPsecSaEnum0@20
+IPsecSaEnum1@20
 IPsecSaInitiateAsync0@16
 IkeextGetConfigParameters0@4
 IkeextGetStatistics0@8
+IkeextGetStatistics1@8
 IkeextSaCreateEnumHandle0@12
 IkeextSaDbGetSecurityInfo0@28
 IkeextSaDbSetSecurityInfo0@24
 IkeextSaDeleteById0@12
 IkeextSaDestroyEnumHandle0@8
 IkeextSaEnum0@20
+IkeextSaEnum1@20
+IkeextSaEnum2@20
 IkeextSaGetById0@16
+IkeextSaGetById1@20
+IkeextSaGetById2@20
+IkeextSaUpdateAdditionalAddressesByTunnelId0@24
+IkeextSaUpdatePreferredAddressesByTunnelId0@24
 IkeextSetConfigParameters0@4
+NamespaceCallout@12
+WFPRIODequeueCompletion@12
 WSADeleteSocketPeerTargetName@20
 WSAImpersonateSocketPeer@12
 WSAQuerySocketSecurity@28
 WSARevertImpersonation@0
 WSASetSocketPeerTargetName@20
 WSASetSocketSecurity@20
-wfpdiagW@16
+WfpCloseDPConfigureHandle@4 ; forwards to NtClose in ntdll.dll
+WfpConfigureDPSecurityDescriptor@12
+WfpCreateDPConfigureHandle@4
+WfpRIOChannelClose@4 ; forwards to NtClose in ntdll.dll
+WfpRIOCleanupRequestQueue@8
+WfpRIOCloseCompletionQueue@8
+WfpRIOCreateChannel@12
+WfpRIOCreateCompletionQueue@16
+WfpRIOCreateRequestQueue@36
+WfpRIODeregisterBuffer@12
+WfpRIOIndicateActivityThreshold@8
+WfpRIONotify@8
+WfpRIOReceive@28
+WfpRIORegisterBuffer@16
+WfpRIOResume@4
+WfpRIOSend@28
+WfpRIOSuspend@4
lib/libc/mingw/lib32/ksuser.def
@@ -1,6 +1,15 @@
-LIBRARY ksuser.dll
+;
+; Definition file of ksuser.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "ksuser.dll"
 EXPORTS
+KsCreateAllocator2@12
 KsCreateAllocator@12
+KsCreateClock2@12
 KsCreateClock@12
+KsCreatePin2@16
 KsCreatePin@16
+KsCreateTopologyNode2@16
 KsCreateTopologyNode@16
lib/libc/mingw/lib32/mswsock.def
@@ -1,4 +1,9 @@
-LIBRARY MSWSOCK.DLL
+;
+; Definition file of MSWSOCK.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "MSWSOCK.dll"
 EXPORTS
 AcceptEx@32
 EnumProtocolsA@12
@@ -10,14 +15,53 @@ GetNameByTypeA@12
 GetNameByTypeW@12
 GetServiceA@28
 GetServiceW@28
+GetSocketErrorMessageW@4
 GetTypeByNameA@8
 GetTypeByNameW@8
 MigrateWinsockConfiguration@12
+MigrateWinsockConfigurationEx@20
 NPLoadNameSpaces@12
+NSPStartup@8
+; MSDN says ProcessSocketNotifications is from ws2_32.dll, not mswsock.dll
+; ProcessSocketNotifications@28
 SetServiceA@24
 SetServiceW@24
+StartWsdpService@0
+StopWsdpService@0
+Tcpip4_WSHAddressToString@20
+Tcpip4_WSHEnumProtocols@16
+Tcpip4_WSHGetBroadcastSockaddr@12
+Tcpip4_WSHGetProviderGuid@8
+Tcpip4_WSHGetSockaddrType@12
+Tcpip4_WSHGetSocketInformation@32
+Tcpip4_WSHGetWSAProtocolInfo@12
+Tcpip4_WSHGetWildcardSockaddr@12
+Tcpip4_WSHGetWinsockMapping@8
+Tcpip4_WSHIoctl@52
+Tcpip4_WSHJoinLeaf@52
+Tcpip4_WSHNotify@20
+Tcpip4_WSHOpenSocket2@32
+Tcpip4_WSHOpenSocket@24
+Tcpip4_WSHSetSocketInformation@32
+Tcpip4_WSHStringToAddress@20
+Tcpip6_WSHAddressToString@20
+Tcpip6_WSHEnumProtocols@16
+Tcpip6_WSHGetProviderGuid@8
+Tcpip6_WSHGetSockaddrType@12
+Tcpip6_WSHGetSocketInformation@32
+Tcpip6_WSHGetWSAProtocolInfo@12
+Tcpip6_WSHGetWildcardSockaddr@12
+Tcpip6_WSHGetWinsockMapping@8
+Tcpip6_WSHIoctl@52
+Tcpip6_WSHJoinLeaf@52
+Tcpip6_WSHNotify@20
+Tcpip6_WSHOpenSocket2@32
+Tcpip6_WSHOpenSocket@24
+Tcpip6_WSHSetSocketInformation@32
+Tcpip6_WSHStringToAddress@20
 TransmitFile@28
 WSARecvEx@16
+WSPStartup@76
 dn_expand@20
 getnetbyname@4
 inet_network@4
lib/libc/mingw/lib32/ntdll.def
@@ -229,6 +229,7 @@ NtAccessCheckByTypeAndAuditAlarm@64
 NtAccessCheckByTypeResultList@44
 NtAccessCheckByTypeResultListAndAuditAlarm@64
 NtAccessCheckByTypeResultListAndAuditAlarmByHandle@68
+NtAcquireCrossVmMutant@8
 NtAcquireProcessActivityReference@12
 NtAcquireCMFViewOwnership@12
 NtAddAtom@12
@@ -284,6 +285,8 @@ NtCancelSynchronousIoFile@12
 NtCancelTimer2@8
 NtCancelTimer@8
 NtCancelWaitCompletionPacket@8
+NtChangeProcessState@24
+NtChangeThreadState@24
 NtClearEvent@4
 NtClose@4
 NtCloseObjectAuditAlarm@12
@@ -299,8 +302,10 @@ NtCompleteConnectPort@4
 NtCompressKey@4
 NtConnectPort@32
 NtContinue@8
+NtContinueEx@8
 NtConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
 NtCreateCrossVmEvent@24
+NtCreateCrossVmMutant@24
 NtCreateDebugObject@16
 NtCreateDirectoryObject@12
 NtCreateDirectoryObjectEx@20
@@ -311,6 +316,7 @@ NtCreateEventPair@12
 NtCreateFile@44
 NtCreateIRTimer@12
 NtCreateIoCompletion@16
+NtCreateIoRing@20
 NtCreateJobObject@12
 NtCreateJobSet@12
 NtCreateKey@28
@@ -326,6 +332,7 @@ NtCreatePort@20
 NtCreatePrivateNamespace@16
 NtCreateProcess@32
 NtCreateProcessEx@36
+NtCreateProcessStateChange@20
 NtCreateProfile@36
 NtCreateProfileEx@40
 NtCreateRegistryTransaction@16
@@ -336,6 +343,7 @@ NtCreateSemaphore@20
 NtCreateSymbolicLinkObject@16
 NtCreateThread@32
 NtCreateThreadEx@44
+NtCreateThreadStateChange@20
 NtCreateTimer2@20
 NtCreateTimer@16
 NtCreateToken@52
@@ -362,6 +370,7 @@ NtDeleteValueKey@8
 NtDeleteWnfStateData@8
 NtDeleteWnfStateName@4
 NtDeviceIoControlFile@40
+NtDirectGraphicsCall@20
 NtDisableLastKnownGood@0
 NtDisplayString@4
 NtDrawText@4
@@ -420,6 +429,7 @@ NtListenPort@8
 NtLoadDriver@4
 NtLoadEnclaveData@36
 NtLoadKey2@12
+NtLoadKey3@32
 NtLoadKey@8
 NtLoadKeyEx@32
 NtLockFile@40
@@ -517,6 +527,7 @@ NtQueryInformationWorkerFactory@20
 NtQueryInstallUILanguage@4
 NtQueryIntervalProfile@8
 NtQueryIoCompletion@20
+NtQueryIoRingCapabilities@8
 NtQueryKey@20
 NtQueryLicenseValue@20
 NtQueryMultipleValueKey@24
@@ -546,6 +557,7 @@ NtQueryVolumeInformationFile@20
 NtQueryWnfStateData@24
 NtQueryWnfStateNameInformation@20
 NtQueueApcThread@20
+NtQueueApcThreadEx2@28
 NtQueueApcThreadEx@24
 NtRaiseException@12
 NtRaiseHardError@24
@@ -554,6 +566,7 @@ NtReadFileScatter@36
 NtReadOnlyEnlistment@8
 NtReadRequestData@24
 NtReadVirtualMemory@20
+NtReadVirtualMemoryEx@24
 NtRecoverEnlistment@8
 NtRecoverResourceManager@4
 NtRecoverTransactionManager@4
@@ -614,6 +627,7 @@ NtSetIRTimer@8
 NtSetInformationDebugObject@20
 NtSetInformationEnlistment@16
 NtSetInformationFile@20
+NtSetInformationIoRing@16
 NtSetInformationJobObject@16
 NtSetInformationKey@16
 NtSetInformationObject@16
@@ -654,6 +668,7 @@ NtSignalAndWaitForSingleObject@16
 NtSinglePhaseReject@8
 NtStartProfile@4
 NtStopProfile@4
+NtSubmitIoRing@16
 NtSubscribeWnfStateChange@16
 NtSuspendProcess@4
 NtSuspendThread@8
@@ -832,6 +847,8 @@ RtlCommitDebugInfo@8
 RtlCommitMemoryStream@8
 RtlCompactHeap@8
 RtlCompareAltitudes@8
+RtlCompareExchangePointerMapping@16
+RtlCompareExchangePropertyStore@16
 RtlCompareMemory@12
 RtlCompareMemoryUlong@12
 RtlCompareString@12
@@ -844,6 +861,7 @@ RtlComputePrivatizedDllName_U@12
 RtlConnectToSm@16
 RtlConsoleMultiByteToUnicodeN@24
 RtlConstructCrossVmEventPath@12
+RtlConstructCrossVmMutexPath@12
 RtlContractHashTable@4
 RtlConvertDeviceFamilyInfoToString@16
 RtlConvertExclusiveToShared@4
@@ -919,6 +937,7 @@ RtlDecompressBuffer@24
 RtlDecompressBufferEx@28
 RtlDecompressFragment@32
 RtlDefaultNpAcl@4
+RtlDelayExecution@8
 RtlDelete@4
 RtlDeleteAce@8
 RtlDeleteAtomFromAtomTable@8
@@ -1099,6 +1118,7 @@ RtlGetFullPathName_U@16
 RtlGetFullPathName_UEx@20
 RtlGetFullPathName_UstrEx@32
 RtlGetGroupSecurityDescriptor@12
+RtlGetImageFileMachines@8
 RtlGetIntegerAtom@8
 RtlGetInterruptTimePrecise@4
 RtlGetLastNtStatus@0
@@ -1122,6 +1142,7 @@ RtlGetPersistedStateLocation@28
 RtlGetProcessHeaps@8
 RtlGetProcessPreferredUILanguages@16
 RtlGetProductInfo@20
+RtlGetReturnAddressHijackTarget@0
 RtlGetSaclSecurityDescriptor@16
 RtlGetSearchPath@4
 RtlGetSecurityDescriptorRMControl@8
@@ -1130,7 +1151,9 @@ RtlGetSetBootStatusData@24
 RtlGetSuiteMask@0
 RtlGetSystemBootStatus@16
 RtlGetSystemBootStatusEx@12
+RtlGetSystemGlobalData@12
 RtlGetSystemPreferredUILanguages@20
+RtlGetSystemTimeAndBias@12
 RtlGetSystemTimePrecise@0
 RtlGetThreadErrorMode@0
 RtlGetThreadLangIdByIndex@16
@@ -1232,6 +1255,7 @@ RtlIpv6StringToAddressExA@16
 RtlIpv6StringToAddressExW@16
 RtlIpv6StringToAddressW@12
 RtlIsActivationContextActive@4
+RtlIsApiSetImplemented@4
 RtlIsCapabilitySid@4
 RtlIsCloudFilesPlaceholder@8
 RtlIsCriticalSectionLocked@4
@@ -1241,6 +1265,7 @@ RtlIsCurrentThread@4
 RtlIsCurrentThreadAttachExempt@0
 RtlIsDosDeviceName_U@4
 RtlIsElevatedRid@4
+RtlIsEnclaveFeaturePresent@4
 RtlIsGenericTableEmpty@4
 RtlIsGenericTableEmptyAvl@4
 RtlIsMultiSessionSku@0
@@ -1321,6 +1346,7 @@ RtlNewSecurityObjectWithMultipleInheritance@36
 RtlNormalizeProcessParams@4
 RtlNormalizeSecurityDescriptor@20
 RtlNormalizeString@20
+RtlNotifyFeatureUsage@4
 RtlNtPathNameToDosPathName@16
 RtlNtStatusToDosError@4
 RtlNtStatusToDosErrorNoTeb@4
@@ -1347,6 +1373,7 @@ RtlProtectHeap@8
 RtlPublishWnfStateData@24
 RtlPushFrame@4
 RtlQueryActivationContextApplicationSettings@28
+RtlQueryAllFeatureConfigurations@16
 RtlQueryAtomInAtomTable@24
 RtlQueryCriticalSectionOwner@4
 RtlQueryDepthSList@4
@@ -1354,6 +1381,9 @@ RtlQueryDynamicTimeZoneInformation@4
 RtlQueryElevationFlags@4
 RtlQueryEnvironmentVariable@24
 RtlQueryEnvironmentVariable_U@12
+RtlQueryFeatureConfiguration@16
+RtlQueryFeatureConfigurationChangeStamp@0
+RtlQueryFeatureUsageNotificationSubscriptions@8
 RtlQueryHeapInformation@20
 RtlQueryImageMitigationPolicy@20
 RtlQueryInformationAcl@16
@@ -1366,11 +1396,13 @@ RtlQueryPackageIdentity@24
 RtlQueryPackageIdentityEx@28
 RtlQueryPerformanceCounter@4
 RtlQueryPerformanceFrequency@4
+RtlQueryPointerMapping@8
 RtlQueryProcessBackTraceInformation@4
 RtlQueryProcessDebugInformation@12
 RtlQueryProcessHeapInformation@4
 RtlQueryProcessLockInformation@4
 RtlQueryProcessPlaceholderCompatibilityMode@0
+RtlQueryPropertyStore@8
 RtlQueryProtectedPolicy@8
 RtlQueryRegistryValueWithFallback@28
 RtlQueryRegistryValues@20
@@ -1402,6 +1434,7 @@ RtlReadOutOfProcessMemoryStream@16
 RtlReadThreadProfilingData@12
 RtlRealPredecessor@4
 RtlRealSuccessor@4
+RtlRegisterFeatureConfigurationChangeNotification@16
 RtlRegisterForWnfMetaNotification@24
 RtlRegisterSecureMemoryCacheCallback@4
 RtlRegisterThreadWithCsrss@0
@@ -1417,7 +1450,9 @@ RtlReleaseSRWLockExclusive@4
 RtlReleaseSRWLockShared@4
 RtlRemoteCall@28
 RtlRemoveEntryHashTable@12
+RtlRemovePointerMapping@8
 RtlRemovePrivileges@12
+RtlRemovePropertyStore@8
 RtlRemoveVectoredContinueHandler@4
 RtlRemoveVectoredExceptionHandler@4
 RtlReplaceSidInSd@16
@@ -1431,6 +1466,7 @@ RtlResetMemoryZone@4
 RtlResetNtUserPfn@0
 RtlResetRtlTranslations@4
 RtlRestoreBootStatusDefaults@4
+RtlRestoreContext@8
 RtlRestoreLastWin32Error@4
 RtlRestoreSystemBootStatusDefaults@0
 RtlRestoreThreadPreferredUILanguages@4
@@ -1463,6 +1499,7 @@ RtlSetEnvironmentStrings@8
 RtlSetEnvironmentVar@20
 RtlSetEnvironmentVariable@12
 RtlSetExtendedFeaturesMask@12
+RtlSetFeatureConfigurations@16
 RtlSetGroupSecurityDescriptor@12
 RtlSetHeapInformation@16
 RtlSetImageMitigationPolicy@20
@@ -1518,6 +1555,7 @@ RtlStringFromGUIDEx@12
 RtlStronglyEnumerateEntryHashTable@8
 RtlSubAuthorityCountSid@4
 RtlSubAuthoritySid@8
+RtlSubscribeForFeatureUsageNotification@8
 RtlSubscribeWnfStateChangeNotification@36
 RtlSubtreePredecessor@4
 RtlSubtreeSuccessor@4
@@ -1569,6 +1607,8 @@ RtlUnlockMemoryBlockLookaside@4
 RtlUnlockMemoryStreamRegion@24
 RtlUnlockMemoryZone@4
 RtlUnlockModuleSection@4
+RtlUnregisterFeatureConfigurationChangeNotification@4
+RtlUnsubscribeFromFeatureUsageNotifications@8
 RtlUnsubscribeWnfNotificationWaitForCompletion@4
 RtlUnsubscribeWnfNotificationWithCompletionCallback@12
 RtlUnsubscribeWnfStateChangeNotification@4
@@ -1789,6 +1829,7 @@ ZwAccessCheckByTypeAndAuditAlarm@64
 ZwAccessCheckByTypeResultList@44
 ZwAccessCheckByTypeResultListAndAuditAlarm@64
 ZwAccessCheckByTypeResultListAndAuditAlarmByHandle@68
+ZwAcquireCrossVmMutant@8
 ZwAcquireCMFViewOwnership@12
 ZwAcquireProcessActivityReference@12
 ZwAddAtom@12
@@ -1844,6 +1885,8 @@ ZwCancelSynchronousIoFile@12
 ZwCancelTimer2@8
 ZwCancelTimer@8
 ZwCancelWaitCompletionPacket@8
+ZwChangeProcessState@24
+ZwChangeThreadState@24
 ZwClearEvent@4
 ZwClose@4
 ZwCloseObjectAuditAlarm@12
@@ -1859,8 +1902,10 @@ ZwCompleteConnectPort@4
 ZwCompressKey@4
 ZwConnectPort@32
 ZwContinue@8
+ZwContinueEx@8
 ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
 ZwCreateCrossVmEvent@24
+ZwCreateCrossVmMutant@24
 ZwCreateDebugObject@16
 ZwCreateDirectoryObject@12
 ZwCreateDirectoryObjectEx@20
@@ -1871,6 +1916,7 @@ ZwCreateEventPair@12
 ZwCreateFile@44
 ZwCreateIRTimer@12
 ZwCreateIoCompletion@16
+ZwCreateIoRing@20
 ZwCreateJobObject@12
 ZwCreateJobSet@12
 ZwCreateKey@28
@@ -1886,6 +1932,7 @@ ZwCreatePort@20
 ZwCreatePrivateNamespace@16
 ZwCreateProcess@32
 ZwCreateProcessEx@36
+ZwCreateProcessStateChange@20
 ZwCreateProfile@36
 ZwCreateProfileEx@40
 ZwCreateRegistryTransaction@16
@@ -1896,6 +1943,7 @@ ZwCreateSemaphore@20
 ZwCreateSymbolicLinkObject@16
 ZwCreateThread@32
 ZwCreateThreadEx@44
+ZwCreateThreadStateChange@20
 ZwCreateTimer2@20
 ZwCreateTimer@16
 ZwCreateToken@52
@@ -1921,6 +1969,7 @@ ZwDeleteValueKey@8
 ZwDeleteWnfStateData@8
 ZwDeleteWnfStateName@4
 ZwDeviceIoControlFile@40
+ZwDirectGraphicsCall@20
 ZwDisableLastKnownGood@0
 ZwDisplayString@4
 ZwDrawText@4
@@ -1979,6 +2028,7 @@ ZwListenPort@8
 ZwLoadDriver@4
 ZwLoadEnclaveData@36
 ZwLoadKey2@12
+ZwLoadKey3@32
 ZwLoadKey@8
 ZwLoadKeyEx@32
 ZwLockFile@40
@@ -2076,6 +2126,7 @@ ZwQueryInformationWorkerFactory@20
 ZwQueryInstallUILanguage@4
 ZwQueryIntervalProfile@8
 ZwQueryIoCompletion@20
+ZwQueryIoRingCapabilities@8
 ZwQueryKey@20
 ZwQueryLicenseValue@20
 ZwQueryMultipleValueKey@24
@@ -2105,6 +2156,7 @@ ZwQueryVolumeInformationFile@20
 ZwQueryWnfStateData@24
 ZwQueryWnfStateNameInformation@20
 ZwQueueApcThread@20
+ZwQueueApcThreadEx2@28
 ZwQueueApcThreadEx@24
 ZwRaiseException@12
 ZwRaiseHardError@24
@@ -2113,6 +2165,7 @@ ZwReadFileScatter@36
 ZwReadOnlyEnlistment@8
 ZwReadRequestData@24
 ZwReadVirtualMemory@20
+ZwReadVirtualMemoryEx@24
 ZwRecoverEnlistment@8
 ZwRecoverResourceManager@4
 ZwRecoverTransactionManager@4
@@ -2173,6 +2226,7 @@ ZwSetIRTimer@8
 ZwSetInformationDebugObject@20
 ZwSetInformationEnlistment@16
 ZwSetInformationFile@20
+ZwSetInformationIoRing@16
 ZwSetInformationJobObject@16
 ZwSetInformationKey@16
 ZwSetInformationObject@16
@@ -2213,6 +2267,7 @@ ZwSignalAndWaitForSingleObject@16
 ZwSinglePhaseReject@8
 ZwStartProfile@4
 ZwStopProfile@4
+ZwSubmitIoRing@16
 ZwSubscribeWnfStateChange@16
 ZwSuspendProcess@4
 ZwSuspendThread@8
lib/libc/mingw/lib32/query.def
@@ -0,0 +1,17 @@
+;
+; Definition file of query.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "query.dll"
+EXPORTS
+LoadBinaryFilter@8
+LoadTextFilter@8
+BindIFilterFromStorage@12
+BindIFilterFromStream@12
+DllCanUnloadNow
+DllGetClassObject@12
+DllRegisterServer
+DllUnregisterServer
+LoadIFilter@12
+LoadIFilterEx@16
lib/libc/mingw/lib32/tbs.def
@@ -5,9 +5,24 @@
 ;
 LIBRARY "tbs.dll"
 EXPORTS
+Tbsi_Create_Attestation_From_Log@36
+Tbsi_Get_TCG_Logs@24
+GetDeviceID@16
+GetDeviceIDString@16
+GetDeviceIDWithTimeout@20
 Tbsi_Context_Create@8
+Tbsi_Create_Windows_Key@4
+Tbsi_FilterLog@24
+Tbsi_GetDeviceInfo@8
+Tbsi_Get_OwnerAuth@16
 Tbsi_Get_TCG_Log@12
+Tbsi_Get_TCG_Log_Ex@12
 Tbsi_Physical_Presence_Command@20
+Tbsi_Revoke_Attestation@0
+Tbsi_ShaHash@32
 Tbsip_Cancel_Commands@4
 Tbsip_Context_Close@4
 Tbsip_Submit_Command@28
+Tbsip_Submit_Command_NonBlocking@28
+Tbsip_TestInterruptInformation@4
+Tbsip_TestMorBit@4
lib/libc/mingw/lib32/user32.def
@@ -1,12 +1,13 @@
 LIBRARY USER32.dll
 EXPORTS
-;ord_1500@16 @1500
-;ord_1501@4 @1501
-;ord_1502@12 @1502
+GetPointerFrameArrivalTimes@12
+Wow64Transition DATA
 ActivateKeyboardLayout@8
 AddClipboardFormatListener@4
+AddVisualIdentifier@8
 AdjustWindowRect@12
 AdjustWindowRectEx@16
+AdjustWindowRectExForDpi@20
 AlignRects@16
 AllowForegroundActivation@0
 AllowSetForegroundWindow@4
@@ -14,6 +15,7 @@ AnimateWindow@12
 AnyPopup@0
 AppendMenuA@16
 AppendMenuW@16
+AreDpiAwarenessContextsEqual@8
 ArrangeIconicWindows@4
 AttachThreadInput@12
 BeginDeferWindowPos@4
@@ -46,19 +48,13 @@ ChangeDisplaySettingsW@8
 ChangeMenuA@20
 ChangeMenuW@20
 ChangeWindowMessageFilter@8
+DwmGetDxRgn@12
 ChangeWindowMessageFilterEx@16
 CharLowerA@4
 CharLowerBuffA@8
 CharLowerBuffW@8
 CharLowerW@4
 CharNextA@4
-;ord_1550@12 @1550
-;ord_1551@8 @1551
-;ord_1552@8 @1552
-;ord_1553@12 @1553
-;ord_1554@8 @1554
-;ord_1555@16 @1555
-;ord_1556@4 @1556
 CharNextExA@12
 CharNextW@4
 CharPrevA@8
@@ -73,6 +69,7 @@ CharUpperBuffA@8
 CharUpperBuffW@8
 CharUpperW@4
 CheckDesktopByThreadId@4
+CheckBannedOneCoreTransformApi@4
 CheckDBCSEnabledExt@0
 CheckDlgButton@12
 CheckMenuItem@12
@@ -123,10 +120,12 @@ CreateMDIWindowA@40
 CreateMDIWindowW@40
 CreateMenu@0
 CreatePopupMenu@0
+CreateSyntheticPointerDevice@12
 CreateSystemThreads@16 ; ReactOS has the @8 variant
 CreateWindowExA@48
 CreateWindowExW@48
 CreateWindowInBand@52
+CreateWindowInBandEx@56
 CreateWindowIndirect@4
 CreateWindowStationA@16
 CreateWindowStationW@16
@@ -185,6 +184,7 @@ DestroyDCompositionHwndTarget@8
 DestroyIcon@4
 DestroyMenu@4
 DestroyReasons@4
+DestroySyntheticPointerDevice@4
 DestroyWindow@4
 DeviceEventWorker@24 ; No documentation whatsoever, ReactOS has a stub with @20 - https://www.reactos.org/archives/public/ros-diffs/2011-February/040308.html
 DialogBoxIndirectParamA@20
@@ -231,14 +231,18 @@ DrawTextW@20
 DwmGetDxSharedSurface@24
 DwmGetRemoteSessionOcclusionEvent@0
 DwmGetRemoteSessionOcclusionState@0
+DwmKernelShutdown@0
+DwmKernelStartup@0
 DwmLockScreenUpdates@4
 DwmStartRedirection@8 ; Mentioned on http://habrahabr.ru/post/145174/ , enables GDI virtualization (for security purposes)
 DwmStopRedirection@0
 DwmValidateWindow@8
-EditWndProc@16
+EditWndProc@20
 EmptyClipboard@0
 EnableMenuItem@12
 EnableMouseInPointer@4
+EnableNonClientDpiScaling@4
+EnableOneCoreTransformMode@0
 EnableScrollBar@12
 EnableSessionForMMCSS@4
 EnableWindow@8
@@ -293,6 +297,7 @@ GetAppCompatFlags2@4
 GetAppCompatFlags@8 ; ReactOS has @4 version http://doxygen.reactos.org/d9/d71/undocuser_8h_a9b76cdc68c523a061c86a40367049ed2.html
 GetAsyncKeyState@4
 GetAutoRotationState@4
+GetAwarenessFromDpiAwarenessContext@4
 GetCIMSSM@4
 GetCapture@0
 GetCaretBlinkTime@0
@@ -326,6 +331,8 @@ GetDCEx@12
 GetDesktopID@8
 GetDesktopWindow@0
 GetDialogBaseUnits@0
+GetDialogControlDpiChangeBehavior@4
+GetDialogDpiChangeBehavior@4
 GetDisplayAutoRotationPreferences@4
 GetDisplayConfigBufferSizes@12
 GetDlgCtrlID@4
@@ -334,7 +341,12 @@ GetDlgItemInt@16
 GetDlgItemTextA@16
 GetDlgItemTextW@16
 GetDoubleClickTime@0
+GetDpiAwarenessContextForProcess@4
 GetDpiForMonitorInternal@16
+GetDpiForSystem@0
+GetDpiForWindow@4
+GetDpiFromDpiAwarenessContext@4
+GetExtendedPointerDeviceProperty@8
 GetFocus@0
 GetForegroundWindow@0
 GetGUIThreadInfo@8
@@ -365,6 +377,7 @@ GetLayeredWindowAttributes@16
 GetListBoxInfo@4
 GetMagnificationDesktopColorEffect@4
 GetMagnificationDesktopMagnification@12
+GetMagnificationDesktopSamplingMode@4
 GetMagnificationLensCtxInformation@16
 GetMenu@4
 GetMenuBarInfo@16
@@ -396,6 +409,8 @@ GetPhysicalCursorPos@4
 GetPointerCursorId@8
 GetPointerDevice@8
 GetPointerDeviceCursors@12
+GetPointerDeviceInputSpace@8
+GetPointerDeviceOrientation@8
 GetPointerDeviceProperties@12
 GetPointerDeviceRects@12
 GetPointerDevices@8
@@ -403,6 +418,7 @@ GetPointerFrameInfo@12
 GetPointerFrameInfoHistory@16
 GetPointerFramePenInfo@12
 GetPointerFramePenInfoHistory@16
+GetPointerFrameTimes@12
 GetPointerFrameTouchInfo@12
 GetPointerFrameTouchInfoHistory@16
 GetPointerInfo@8
@@ -429,22 +445,26 @@ GetRawInputDeviceList@12
 GetRawPointerDeviceData@20
 GetReasonTitleFromReasonCode@12
 GetRegisteredRawInputDevices@12
-GetQueueStatus@4
 GetScrollBarInfo@12
 GetScrollInfo@12
 GetScrollPos@8
 GetScrollRange@16
 GetSendMessageReceiver@4
+GetShellChangeNotifyWindow@0
 GetShellWindow@0
 GetSubMenu@8
 GetSysColor@4
 GetSysColorBrush@4
+GetSystemDpiForProcess@4
 GetSystemMenu@8
 GetSystemMetrics@4
+GetSystemMetricsForDpi@8
 GetTabbedTextExtentA@20
 GetTabbedTextExtentW@20
 GetTaskmanWindow@0
 GetThreadDesktop@4
+GetThreadDpiAwarenessContext@0
+GetThreadDpiHostingBehavior@0
 GetTitleBarInfo@8
 GetTopLevelWindow@4
 GetTopWindow@4
@@ -464,6 +484,8 @@ GetWindowCompositionInfo@8
 GetWindowContextHelpId@4
 GetWindowDC@4
 GetWindowDisplayAffinity@8
+GetWindowDpiAwarenessContext@4
+GetWindowDpiHostingBehavior@4
 GetWindowFeedbackSetting@20
 GetWindowInfo@8
 GetWindowLongA@8
@@ -473,6 +495,7 @@ GetWindowModuleFileName@12
 GetWindowModuleFileNameA@12
 GetWindowModuleFileNameW@12
 GetWindowPlacement@8
+GetWindowProcessHandle@8
 GetWindowRect@8
 GetWindowRgn@8
 GetWindowRgnBox@8
@@ -499,25 +522,34 @@ ImpersonateDdeClientWindow@8
 InSendMessage@0
 InSendMessageEx@4
 InflateRect@12
+InheritWindowMonitor@8
+InitDManipHook@0
+InitializeGenericHidInjection@8
+InitializeInputDeviceInjection@28
 InitializeLpkHooks@4
 InitializeWin32EntryTable@4
+InitializePointerDeviceInjection@20
+InitializePointerDeviceInjectionEx@24
 InitializeTouchInjection@8
+InjectDeviceInput@12
+InjectGenericHidInput@12
+InjectKeyboardInput@8
+InjectMouseInput@8
+InjectPointerInput@12
+InjectSyntheticPointerInput@12
 InjectTouchInput@8
+InputSpaceRegionFromPoint@20
 InsertMenuA@20
 InsertMenuItemA@16
 InsertMenuItemW@16
 InsertMenuW@20
 InternalGetWindowIcon@8
-;ord_2001@4 @2001
-;ord_2002@4 @2002
 InternalGetWindowText@12
 IntersectRect@12
-;ord_2005@4 @2005
 InvalidateRect@12
 InvalidateRgn@12
 InvertRect@8
 IsCharAlphaA@4
-;ord_2010@16 @2010
 IsCharAlphaNumericA@4
 IsCharAlphaNumericW@4
 IsCharAlphaW@4
@@ -539,16 +571,20 @@ IsInDesktopWindowBand@4
 IsMenu@4
 IsProcess16Bit@0
 IsMouseInPointerEnabled@0
+IsOneCoreTransformMode@0
 IsProcessDPIAware@0
 IsQueueAttached@0
 IsRectEmpty@4
 IsSETEnabled@0
 IsServerSideWindow@4
 IsThreadDesktopComposited@0
+IsThreadTSFEventAware@4
 IsTopLevelWindow@4
 IsTouchWindow@8
+IsValidDpiAwarenessContext@4
 IsWinEventHookInstalled@4
 IsWindow@4
+IsWindowArranged@4
 IsWindowEnabled@4
 IsWindowInDestroy@4
 IsWindowRedirectedForPrint@4
@@ -565,12 +601,8 @@ LoadBitmapW@8
 LoadCursorA@8
 LoadCursorFromFileA@4
 LoadCursorFromFileW@4
-;ord_2000@0 @2000
-;ord_2001@4 @2001
-;ord_2002@4 @2002
 LoadCursorW@8
 LoadIconA@8
-;ord_2005@4 @2005
 LoadIconW@8
 LoadImageA@24
 LoadImageW@24
@@ -596,11 +628,19 @@ LookupIconIdFromDirectoryEx@20
 MBToWCSEx@24
 MBToWCSExt@20
 MB_GetString@4
+MITGetCursorUpdateHandle@0
+MITSetForegroundRoutingInfo@8
+MITSetInputDelegationMode@8
+MITSetLastInputRecipient@4
+MITSynthesizeTouchInput@4
+MakeThreadTSFEventAware@4
 MapDialogRect@8
+MapPointsByVisualIdentifier@20
 MapVirtualKeyA@8
 MapVirtualKeyExA@12
 MapVirtualKeyExW@12
 MapVirtualKeyW@8
+MapVisualRelativePoints@28
 MapWindowPoints@16
 MenuItemFromPoint@16
 MenuWindowProcA@20
@@ -665,6 +705,28 @@ QueryBSDRWindow@0
 QueryDisplayConfig@24
 QuerySendMessage@4
 QueryUserCounters@20
+RIMAddInputObserver@32
+RIMAreSiblingDevices@12
+RIMDeviceIoControl@36
+RIMEnableMonitorMappingForDevice@12
+RIMFreeInputBuffer@8
+RIMGetDevicePreparsedData@16
+RIMGetDevicePreparsedDataLockfree@12
+RIMGetDeviceProperties@12
+RIMGetDevicePropertiesLockfree@8
+RIMGetPhysicalDeviceRect@12
+RIMGetSourceProcessId@12
+RIMObserveNextInput@4
+RIMOnPnpNotification@4
+RIMOnTimerNotification@8
+RIMQueryDevicePath@8
+RIMReadInput@28
+RIMRegisterForInput@40
+RIMRemoveInputObserver@4
+RIMSetExtendedDeviceProperty@12
+RIMSetTestModeStatus@4
+RIMUnregisterForInput@4
+RIMUpdateInputObserverRegistration@16
 RealChildWindowFromPoint@12
 RealGetWindowClass@12
 RealGetWindowClassA@12
@@ -680,17 +742,18 @@ RegisterClassExW@4
 RegisterClassW@4
 RegisterClipboardFormatA@4
 RegisterClipboardFormatW@4
+RegisterDManipHook@0
 RegisterDeviceNotificationA@12
 RegisterDeviceNotificationW@12
 RegisterErrorReportingDialog@8
 RegisterFrostWindow@8
 RegisterGhostWindow@8
 RegisterHotKey@16
-RegisterPowerSettingNotification@12
 RegisterLogonProcess@8
 RegisterMessagePumpHook@4
 RegisterPointerDeviceNotifications@8
 RegisterPointerInputTarget@8
+RegisterPointerInputTargetEx@12
 RegisterPowerSettingNotification@12
 RegisterRawInputDevices@12
 RegisterServicesProcess@4
@@ -706,10 +769,14 @@ RegisterWindowMessageA@4
 RegisterWindowMessageW@4
 ReleaseCapture@0
 ReleaseDC@8
+ReleaseDwmHitTestWaiters@0
 RemoveClipboardFormatListener@4
+RemoveInjectionDevice@4
 RemoveMenu@12
 RemovePropA@8
 RemovePropW@8
+RemoveThreadTSFEventAwareness@4
+RemoveVisualIdentifier@4
 ReplyMessage@4
 ResolveDesktopForWOW@4
 ReuseDDElParam@20
@@ -747,14 +814,19 @@ SetCursorContents@8
 SetCursorPos@8
 SetDebugErrorLevel@4
 SetDeskWallpaper@4
+SetDesktopColorTransform@4
+SetDialogControlDpiChangeBehavior@12
+SetDialogDpiChangeBehavior@12
 SetDisplayAutoRotationPreferences@4
 SetDisplayConfig@20
 SetDlgItemInt@16
 SetDlgItemTextA@12
 SetDlgItemTextW@12
 SetDoubleClickTime@4
+SetFeatureReportResponse@12
 SetFocus@4
 SetForegroundWindow@4
+SetFullscreenMagnifierOffsetsDWMUpdated@12
 SetGestureConfig@20
 SetImmersiveBackgroundWindow@4
 SetInternalWindowPos@16
@@ -764,6 +836,8 @@ SetLayeredWindowAttributes@16
 SetLogonNotifyWindow@4
 SetMagnificationDesktopColorEffect@4
 SetMagnificationDesktopMagnification@16
+SetMagnificationDesktopMagnifierOffsetsDWMUpdated@4
+SetMagnificationDesktopSamplingMode@4
 SetMagnificationLensCtxInformation@16
 SetMenu@8
 SetMenuContextHelpId@8
@@ -777,8 +851,10 @@ SetMessageQueue@4
 SetMirrorRendering@8
 SetParent@8
 SetPhysicalCursorPos@8
+SetPointerDeviceInputSpace@12
 SetProcessDPIAware@0
 SetProcessDefaultLayout@4
+SetProcessDpiAwarenessContext@4
 SetProcessDpiAwarenessInternal@4
 SetProcessRestrictionExemption@4
 SetProcessWindowStation@4
@@ -790,6 +866,7 @@ SetRectEmpty@4
 SetScrollInfo@16
 SetScrollPos@16
 SetScrollRange@20
+SetShellChangeNotifyWindow@4
 SetShellWindow@4
 SetShellWindowEx@8
 SetSysColors@12
@@ -799,6 +876,8 @@ SetSystemMenu@8
 SetSystemTimer@16
 SetTaskmanWindow@4
 SetThreadDesktop@4
+SetThreadDpiAwarenessContext@4
+SetThreadDpiHostingBehavior@4
 SetThreadInputBlocked@8
 SetTimer@16
 SetUserObjectInformationA@16
@@ -823,6 +902,7 @@ SetWindowTextW@8
 SetWindowWord@12
 SetWindowsHookA@8
 SetWindowsHookExA@16
+SetWindowsHookExAW@20
 SetWindowsHookExW@16
 SetWindowsHookW@8
 SfmDxBindSwapChain@12
@@ -854,6 +934,7 @@ SwitchDesktop@4
 SwitchDesktopWithFade@12 ; Same as SwithDesktop(), only with fade (done at log-in), only usable by winlogon - http://blog.airesoft.co.uk/2010/08/things-microsoft-can-do-that-you-cant/
 SwitchToThisWindow@8
 SystemParametersInfoA@16
+SystemParametersInfoForDpi@20
 SystemParametersInfoW@16
 TabbedTextOutA@32
 TabbedTextOutW@32
@@ -885,6 +966,7 @@ UnregisterDeviceNotification@4
 UnregisterHotKey@8
 UnregisterMessagePumpHook@0
 UnregisterPointerInputTarget@8
+UnregisterPointerInputTargetEx@8
 UnregisterPowerSettingNotification@4
 UnregisterSessionPort@0
 UnregisterSuspendResumeNotification@4
@@ -934,65 +1016,10 @@ wsprintfA
 wsprintfW
 wvsprintfA@12
 wvsprintfW@12
-;ord_2500@16 @2500
-;ord_2501@12 @2501
-;ord_2502@8 @2502
-;ord_2503@24 @2503
-;ord_2504@8 @2504
-;ord_2505@8 @2505
-;ord_2506@12 @2506
-;ord_2507@4 @2507
-;ord_2508@8 @2508
-;ord_2509@4 @2509
-;ord_2510@12 @2510
-;ord_2511@8 @2511
-;ord_2512@12 @2512
-;ord_2513@4 @2513
-;ord_2514@8 @2514
-;ord_2515@8 @2515
-;ord_2516@12 @2516
-;ord_2517@4 @2517
-;ord_2518@0 @2518
-;ord_2519@4 @2519
-;ord_2520@0 @2520
-;ord_2521@8 @2521
-;ord_2522@4 @2522
-;ord_2523@8 @2523
-;ord_2524@8 @2524
-;ord_2525@12 @2525
-;ord_2526@12 @2526
-;ord_2527@12 @2527
+DelegateInput@24
+UndelegateInput@8
+HandleDelegatedInput@8
+GetProcessUIContextInformation@8
 IsThreadMessageQueueAttached@4
-;ord_2529@4 @2529
-;ord_2530@8 @2530
-;ord_2531@16 @2531
-;ord_2532@8 @2532
-;ord_2533@4 @2533
-;ord_2534@8 @2534
-;ord_2535@0 @2535
-;ord_2536@8 @2536
-;ord_2537@16 @2537
-;ord_2538@4 @2538
-;ord_2539@4 @2539
-;ord_2540@4 @2540
-;ord_2541@0 @2541
-;ord_2544@4 @2544
-;ord_2545@8 @2545
-;ord_2546@4 @2546
-;ord_2547@4 @2547
-;ord_2548@4 @2548
-;ord_2549@4 @2549
-;ord_2550@8 @2550
-;ord_2551@20 @2551
-;ord_2552@8 @2552
-;ord_2553@32 @2553
-;ord_2554@12 @2554
-;ord_2555@16 @2555
-;ord_2556@8 @2556
-;ord_2557@12 @2557
-;ord_2558@12 @2558
-;ord_2559@16 @2559
-;ord_2560@20 @2560
-;ord_2561@0 @2561
-;ord_2562@0 @2562
-;ord_2563@0 @2563
+ReportInertia@20
+SetCoreWindow@8
lib/libc/mingw/lib32/ws2_32.def
@@ -33,14 +33,19 @@ FreeAddrInfoEx@4
 FreeAddrInfoExW@4
 FreeAddrInfoW@4
 GetAddrInfoExA@40
+GetAddrInfoExCancel@4
+GetAddrInfoExOverlappedResult@4
 GetAddrInfoExW@40
 GetAddrInfoW@16
+GetHostNameW@8
 GetNameInfoW@28
 InetNtopW@16
 InetPtonW@12
+ProcessSocketNotifications@28
 SetAddrInfoExA@48
 SetAddrInfoExW@48
 WPUCompleteOverlappedRequest@20
+WPUGetProviderPathEx@20
 WSAAccept@20
 WSAAddressToStringA@20
 WSAAddressToStringW@20
@@ -126,21 +131,30 @@ WSAStringToAddressW@20
 WSAUnadvertiseProvider@4
 WSAWaitForMultipleEvents@20
 WSCDeinstallProvider@8
+WSCDeinstallProviderEx@12
 WSCEnableNSProvider@8
 WSCEnumProtocols@16
+WSCEnumProtocolsEx@20
 WSCGetApplicationCategory@24
+WSCGetApplicationCategoryEx@28
 WSCGetProviderInfo@24
 WSCGetProviderPath@16
 WSCInstallNameSpace@20
+WSCInstallNameSpaceEx2@28
 WSCInstallNameSpaceEx@24
 WSCInstallProvider@20
 WSCInstallProviderAndChains@32
+WSCInstallProviderEx@28
 WSCSetApplicationCategory@28
+WSCSetApplicationCategoryEx@32
 WSCSetProviderInfo@24
 WSCUnInstallNameSpace@4
+WSCUnInstallNameSpaceEx2@8
 WSCUpdateProvider@20
+WSCUpdateProviderEx@24
 WSCWriteNameSpaceOrder@8
 WSCWriteProviderOrder@8
+WSCWriteProviderOrderEx@12
 WahCloseApcHelper@4
 WahCloseHandleHelper@4
 WahCloseNotificationHandleHelper@4
lib/libc/mingw/lib64/fwpuclnt.def
@@ -1,146 +0,0 @@
-;
-; Definition file of fwpuclnt.dll
-; Automatic generated by gendef
-; written by Kai Tietz 2008
-;
-LIBRARY "fwpuclnt.dll"
-EXPORTS
-FwpmCalloutAdd0
-FwpmCalloutCreateEnumHandle0
-FwpmCalloutDeleteById0
-FwpmCalloutDeleteByKey0
-FwpmCalloutDestroyEnumHandle0
-FwpmCalloutEnum0
-FwpmCalloutGetById0
-FwpmCalloutGetByKey0
-FwpmCalloutGetSecurityInfoByKey0
-FwpmCalloutSetSecurityInfoByKey0
-FwpmCalloutSubscribeChanges0
-FwpmCalloutSubscriptionsGet0
-FwpmCalloutUnsubscribeChanges0
-FwpmDiagnoseNetFailure0
-FwpmEngineClose0
-FwpmEngineGetOption0
-FwpmEngineGetSecurityInfo0
-FwpmEngineOpen0
-FwpmEngineSetOption0
-FwpmEngineSetSecurityInfo0
-FwpmEventProviderCreate0
-FwpmEventProviderDestroy0
-FwpmEventProviderFireNetEvent0
-FwpmEventProviderIsNetEventTypeEnabled0
-FwpmFilterAdd0
-FwpmFilterCreateEnumHandle0
-FwpmFilterDeleteById0
-FwpmFilterDeleteByKey0
-FwpmFilterDestroyEnumHandle0
-FwpmFilterEnum0
-FwpmFilterGetById0
-FwpmFilterGetByKey0
-FwpmFilterGetSecurityInfoByKey0
-FwpmFilterSetSecurityInfoByKey0
-FwpmFilterSubscribeChanges0
-FwpmFilterSubscriptionsGet0
-FwpmFilterUnsubscribeChanges0
-FwpmFreeMemory0
-FwpmGetAppIdFromFileName0
-FwpmIPsecTunnelAdd0
-FwpmIPsecTunnelDeleteByKey0
-FwpmLayerCreateEnumHandle0
-FwpmLayerDestroyEnumHandle0
-FwpmLayerEnum0
-FwpmLayerGetById0
-FwpmLayerGetByKey0
-FwpmLayerGetSecurityInfoByKey0
-FwpmLayerSetSecurityInfoByKey0
-FwpmNetEventCreateEnumHandle0
-FwpmNetEventDestroyEnumHandle0
-FwpmNetEventEnum0
-FwpmNetEventsGetSecurityInfo0
-FwpmNetEventsSetSecurityInfo0
-FwpmProviderAdd0
-FwpmProviderContextAdd0
-FwpmProviderContextCreateEnumHandle0
-FwpmProviderContextDeleteById0
-FwpmProviderContextDeleteByKey0
-FwpmProviderContextDestroyEnumHandle0
-FwpmProviderContextEnum0
-FwpmProviderContextGetById0
-FwpmProviderContextGetByKey0
-FwpmProviderContextGetSecurityInfoByKey0
-FwpmProviderContextSetSecurityInfoByKey0
-FwpmProviderContextSubscribeChanges0
-FwpmProviderContextSubscriptionsGet0
-FwpmProviderContextUnsubscribeChanges0
-FwpmProviderCreateEnumHandle0
-FwpmProviderDeleteByKey0
-FwpmProviderDestroyEnumHandle0
-FwpmProviderEnum0
-FwpmProviderGetByKey0
-FwpmProviderGetSecurityInfoByKey0
-FwpmProviderSetSecurityInfoByKey0
-FwpmProviderSubscribeChanges0
-FwpmProviderSubscriptionsGet0
-FwpmProviderUnsubscribeChanges0
-FwpmSessionCreateEnumHandle0
-FwpmSessionDestroyEnumHandle0
-FwpmSessionEnum0
-FwpmSubLayerAdd0
-FwpmSubLayerCreateEnumHandle0
-FwpmSubLayerDeleteByKey0
-FwpmSubLayerDestroyEnumHandle0
-FwpmSubLayerEnum0
-FwpmSubLayerGetByKey0
-FwpmSubLayerGetSecurityInfoByKey0
-FwpmSubLayerSetSecurityInfoByKey0
-FwpmSubLayerSubscribeChanges0
-FwpmSubLayerSubscriptionsGet0
-FwpmSubLayerUnsubscribeChanges0
-FwpmTraceRestoreDefaults0
-FwpmTransactionAbort0
-FwpmTransactionBegin0
-FwpmTransactionCommit0
-FwpsAleExplicitCredentialsQuery0
-FwpsClassifyUser0
-FwpsFreeMemory0
-FwpsGetInProcReplicaOffset0
-FwpsLayerCreateInProcReplica0
-FwpsLayerReleaseInProcReplica0
-FwpsOpenToken0
-IPsecGetStatistics0
-IPsecKeyModuleAdd0
-IPsecKeyModuleCompleteAcquire0
-IPsecKeyModuleDelete0
-IPsecSaContextAddInbound0
-IPsecSaContextAddOutbound0
-IPsecSaContextCreate0
-IPsecSaContextCreateEnumHandle0
-IPsecSaContextDeleteById0
-IPsecSaContextDestroyEnumHandle0
-IPsecSaContextEnum0
-IPsecSaContextExpire0
-IPsecSaContextGetById0
-IPsecSaContextGetSpi0
-IPsecSaCreateEnumHandle0
-IPsecSaDbGetSecurityInfo0
-IPsecSaDbSetSecurityInfo0
-IPsecSaDestroyEnumHandle0
-IPsecSaEnum0
-IPsecSaInitiateAsync0
-IkeextGetConfigParameters0
-IkeextGetStatistics0
-IkeextSaCreateEnumHandle0
-IkeextSaDbGetSecurityInfo0
-IkeextSaDbSetSecurityInfo0
-IkeextSaDeleteById0
-IkeextSaDestroyEnumHandle0
-IkeextSaEnum0
-IkeextSaGetById0
-IkeextSetConfigParameters0
-WSADeleteSocketPeerTargetName
-WSAImpersonateSocketPeer
-WSAQuerySocketSecurity
-WSARevertImpersonation
-WSASetSocketPeerTargetName
-WSASetSocketSecurity
-wfpdiagW
lib/libc/mingw/lib64/query.def
@@ -1,1447 +0,0 @@
-; 
-; Exports of file query.dll
-;
-; Autogenerated by gen_exportdef
-; Written by Kai Tietz, 2007
-;
-LIBRARY query.dll
-EXPORTS
-; class CCoTaskAllocator  CoTaskAllocator
-?CoTaskAllocator@@3VCCoTaskAllocator@@A DATA
-; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(struct tagPROPVARIANT & __ptr64,class PMemoryAllocator & __ptr64) __ptr64
-??0CAllocStorageVariant@@QEAA@AEAUtagPROPVARIANT@@AEAVPMemoryAllocator@@@Z
-; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(class PDeSerStream & __ptr64,class PMemoryAllocator & __ptr64) __ptr64
-??0CAllocStorageVariant@@QEAA@AEAVPDeSerStream@@AEAVPMemoryAllocator@@@Z
-; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(char const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
-??0CAllocStorageVariant@@QEAA@PEBDAEAVPMemoryAllocator@@@Z
-; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(unsigned short const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
-??0CAllocStorageVariant@@QEAA@PEBGAEAVPMemoryAllocator@@@Z
-; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(struct _GUID const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
-??0CAllocStorageVariant@@QEAA@PEBU_GUID@@AEAVPMemoryAllocator@@@Z
-; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(enum VARENUM,unsigned long,class PMemoryAllocator & __ptr64) __ptr64
-??0CAllocStorageVariant@@QEAA@W4VARENUM@@KAEAVPMemoryAllocator@@@Z
-; public: __cdecl CCatState::CCatState(void) __ptr64
-??0CCatState@@QEAA@XZ
-; public: __cdecl CCategorizationSet::CCategorizationSet(class CCategorizationSet const & __ptr64) __ptr64
-??0CCategorizationSet@@QEAA@AEBV0@@Z
-; public: __cdecl CCategorizationSet::CCategorizationSet(unsigned int) __ptr64
-??0CCategorizationSet@@QEAA@I@Z
-; public: __cdecl CCiAdminParams::CCiAdminParams(class CLangList * __ptr64) __ptr64
-??0CCiAdminParams@@QEAA@PEAVCLangList@@@Z
-; public: __cdecl CCiRegParams::CCiRegParams(unsigned short const * __ptr64) __ptr64
-??0CCiRegParams@@QEAA@PEBG@Z
-; public: __cdecl CColumnSet::CColumnSet(unsigned int) __ptr64
-??0CColumnSet@@QEAA@I@Z
-; public: __cdecl CColumns::CColumns(class CColumns const & __ptr64) __ptr64
-??0CColumns@@QEAA@AEBV0@@Z
-; public: __cdecl CColumns::CColumns(unsigned int) __ptr64
-??0CColumns@@QEAA@I@Z
-; public: __cdecl CContentRestriction::CContentRestriction(unsigned short const * __ptr64,class CFullPropSpec const & __ptr64,unsigned long,unsigned long) __ptr64
-??0CContentRestriction@@QEAA@PEBGAEBVCFullPropSpec@@KK@Z
-; public: __cdecl CDFA::CDFA(unsigned short const * __ptr64,class CTimeLimit & __ptr64,unsigned char) __ptr64
-??0CDFA@@QEAA@PEBGAEAVCTimeLimit@@E@Z
-; public: __cdecl CDbColId::CDbColId(struct _GUID const & __ptr64,unsigned short const * __ptr64) __ptr64
-??0CDbColId@@QEAA@AEBU_GUID@@PEBG@Z
-; public: __cdecl CDbColId::CDbColId(struct tagDBID const & __ptr64) __ptr64
-??0CDbColId@@QEAA@AEBUtagDBID@@@Z
-; public: __cdecl CDbColId::CDbColId(class CDbColId const & __ptr64) __ptr64
-??0CDbColId@@QEAA@AEBV0@@Z
-; public: __cdecl CDbColId::CDbColId(void) __ptr64
-??0CDbColId@@QEAA@XZ
-; public: __cdecl CDbColumns::CDbColumns(unsigned int) __ptr64
-??0CDbColumns@@QEAA@I@Z
-; public: __cdecl CDbContentRestriction::CDbContentRestriction(unsigned short const * __ptr64,struct tagDBID const & __ptr64,unsigned long,unsigned long) __ptr64
-??0CDbContentRestriction@@QEAA@PEBGAEBUtagDBID@@KK@Z
-; public: __cdecl CDbContentRestriction::CDbContentRestriction(unsigned short const * __ptr64,class CDbColumnNode const & __ptr64,unsigned long,unsigned long) __ptr64
-??0CDbContentRestriction@@QEAA@PEBGAEBVCDbColumnNode@@KK@Z
-; public: __cdecl CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const * __ptr64,struct tagDBID const & __ptr64,unsigned long) __ptr64
-??0CDbNatLangRestriction@@QEAA@PEBGAEBUtagDBID@@K@Z
-; public: __cdecl CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const * __ptr64,class CDbColumnNode const & __ptr64,unsigned long) __ptr64
-??0CDbNatLangRestriction@@QEAA@PEBGAEBVCDbColumnNode@@K@Z
-; public: __cdecl CDbQueryResults::CDbQueryResults(void) __ptr64
-??0CDbQueryResults@@QEAA@XZ
-; public: __cdecl CDbSelectNode::CDbSelectNode(void) __ptr64
-??0CDbSelectNode@@QEAA@XZ
-; public: __cdecl CDbSortSet::CDbSortSet(unsigned int) __ptr64
-??0CDbSortSet@@QEAA@I@Z
-; public: __cdecl CDefColumnRegEntry::CDefColumnRegEntry(void) __ptr64
-??0CDefColumnRegEntry@@QEAA@XZ
-; public: __cdecl CDriveInfo::CDriveInfo(unsigned short const * __ptr64,unsigned long) __ptr64
-??0CDriveInfo@@QEAA@PEBGK@Z
-; public: __cdecl CDynStream::CDynStream(class PMmStream * __ptr64) __ptr64
-??0CDynStream@@QEAA@PEAVPMmStream@@@Z
-; public: __cdecl CEventItem::CEventItem(unsigned short,unsigned short,unsigned long,unsigned short,unsigned long,void const * __ptr64) __ptr64
-??0CEventItem@@QEAA@GGKGKPEBX@Z
-; public: __cdecl CEventLog::CEventLog(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
-??0CEventLog@@QEAA@PEBG0@Z
-; public: __cdecl CException::CException(long) __ptr64
-??0CException@@QEAA@J@Z
-; public: __cdecl CException::CException(void) __ptr64
-??0CException@@QEAA@XZ
-; public: __cdecl CFileBuffer::CFileBuffer(class CFileMapView & __ptr64,unsigned int) __ptr64
-??0CFileBuffer@@QEAA@AEAVCFileMapView@@I@Z
-; public: __cdecl CFileMapView::CFileMapView(unsigned short const * __ptr64) __ptr64
-??0CFileMapView@@QEAA@PEBG@Z
-; public: __cdecl CFilterDaemon::CFilterDaemon(class CiProxy & __ptr64,class CCiFrameworkParams & __ptr64,class CLangList & __ptr64,unsigned char * __ptr64,unsigned long,struct ICiCFilterClient * __ptr64) __ptr64
-??0CFilterDaemon@@QEAA@AEAVCiProxy@@AEAVCCiFrameworkParams@@AEAVCLangList@@PEAEKPEAUICiCFilterClient@@@Z
-; public: __cdecl CFullPath::CFullPath(unsigned short const * __ptr64) __ptr64
-??0CFullPath@@QEAA@PEBG@Z
-; public: __cdecl CFullPath::CFullPath(unsigned short const * __ptr64,unsigned int) __ptr64
-??0CFullPath@@QEAA@PEBGI@Z
-; public: __cdecl CFullPropSpec::CFullPropSpec(class PDeSerStream & __ptr64) __ptr64
-??0CFullPropSpec@@QEAA@AEAVPDeSerStream@@@Z
-; public: __cdecl CFullPropSpec::CFullPropSpec(class CFullPropSpec const & __ptr64) __ptr64
-??0CFullPropSpec@@QEAA@AEBV0@@Z
-; public: __cdecl CFullPropSpec::CFullPropSpec(void) __ptr64
-??0CFullPropSpec@@QEAA@XZ
-; public: __cdecl CFwAsyncWorkItem::CFwAsyncWorkItem(class CWorkManager & __ptr64,class CWorkQueue & __ptr64) __ptr64
-??0CFwAsyncWorkItem@@QEAA@AEAVCWorkManager@@AEAVCWorkQueue@@@Z
-; public: __cdecl CFwEventItem::CFwEventItem(unsigned short,unsigned long,unsigned short,unsigned long,void * __ptr64) __ptr64
-??0CFwEventItem@@QEAA@GKGKPEAX@Z
-; public: __cdecl CGenericCiProxy::CGenericCiProxy(class CSharedNameGen & __ptr64,unsigned long,unsigned long) __ptr64
-??0CGenericCiProxy@@QEAA@AEAVCSharedNameGen@@KK@Z
-; public: __cdecl CGetDbProps::CGetDbProps(void) __ptr64
-??0CGetDbProps@@QEAA@XZ
-; public: __cdecl CImpersonateRemoteAccess::CImpersonateRemoteAccess(class CImpersonationTokenCache * __ptr64) __ptr64
-??0CImpersonateRemoteAccess@@QEAA@PEAVCImpersonationTokenCache@@@Z
-; public: __cdecl CImpersonationTokenCache::CImpersonationTokenCache(unsigned short const * __ptr64) __ptr64
-??0CImpersonationTokenCache@@QEAA@PEBG@Z
-; public: __cdecl CIndexTable::CIndexTable(class CiStorage & __ptr64,class CTransaction & __ptr64) __ptr64
-??0CIndexTable@@QEAA@AEAVCiStorage@@AEAVCTransaction@@@Z
-; public: __cdecl CInternalPropertyRestriction::CInternalPropertyRestriction(unsigned long,unsigned long,class CStorageVariant const & __ptr64,class CRestriction * __ptr64) __ptr64
-??0CInternalPropertyRestriction@@QEAA@KKAEBVCStorageVariant@@PEAVCRestriction@@@Z
-; public: __cdecl CKeyArray::CKeyArray(int,int) __ptr64
-??0CKeyArray@@QEAA@HH@Z
-; public: __cdecl CLangList::CLangList(struct ICiCLangRes * __ptr64,unsigned long) __ptr64
-??0CLangList@@QEAA@PEAUICiCLangRes@@K@Z
-; public: __cdecl CLocalGlobalPropertyList::CLocalGlobalPropertyList(unsigned long) __ptr64
-??0CLocalGlobalPropertyList@@QEAA@K@Z
-; public: __cdecl CLocalGlobalPropertyList::CLocalGlobalPropertyList(class CEmptyPropertyList * __ptr64,int,unsigned short const * __ptr64,unsigned long) __ptr64
-??0CLocalGlobalPropertyList@@QEAA@PEAVCEmptyPropertyList@@HPEBGK@Z
-; public: __cdecl CMachineAdmin::CMachineAdmin(unsigned short const * __ptr64,int) __ptr64
-??0CMachineAdmin@@QEAA@PEBGH@Z
-; public: __cdecl CMemSerStream::CMemSerStream(unsigned int) __ptr64
-??0CMemSerStream@@QEAA@I@Z
-; public: __cdecl CMemSerStream::CMemSerStream(unsigned char * __ptr64,unsigned long) __ptr64
-??0CMemSerStream@@QEAA@PEAEK@Z
-; public: __cdecl CMetaDataMgr::CMetaDataMgr(int,enum CiVRootTypeEnum,unsigned long,unsigned short const * __ptr64) __ptr64
-??0CMetaDataMgr@@QEAA@HW4CiVRootTypeEnum@@KPEBG@Z
-; public: __cdecl CMmStream::CMmStream(unsigned long,int) __ptr64
-??0CMmStream@@QEAA@KH@Z
-; public: __cdecl CMmStreamConsecBuf::CMmStreamConsecBuf(void) __ptr64
-??0CMmStreamConsecBuf@@QEAA@XZ
-; public: __cdecl CNatLanguageRestriction::CNatLanguageRestriction(unsigned short const * __ptr64,class CFullPropSpec const & __ptr64,unsigned long) __ptr64
-??0CNatLanguageRestriction@@QEAA@PEBGAEBVCFullPropSpec@@K@Z
-; public: __cdecl CNodeRestriction::CNodeRestriction(unsigned long,unsigned int) __ptr64
-??0CNodeRestriction@@QEAA@KI@Z
-; public: __cdecl CNormalizer::CNormalizer(class PNoiseList & __ptr64) __ptr64
-??0CNormalizer@@QEAA@AEAVPNoiseList@@@Z
-; public: __cdecl CPathParser::CPathParser(unsigned short const * __ptr64,unsigned long) __ptr64
-??0CPathParser@@QEAA@PEBGK@Z
-; public: __cdecl CPerfMon::CPerfMon(unsigned short const * __ptr64) __ptr64
-??0CPerfMon@@QEAA@PEBG@Z
-; public: __cdecl CPersDeComp::CPersDeComp(class PDirectory & __ptr64,unsigned long,class CPhysIndex & __ptr64,unsigned long,int,int) __ptr64
-??0CPersDeComp@@QEAA@AEAVPDirectory@@KAEAVCPhysIndex@@KHH@Z
-; protected: __cdecl CPhysStorage::CPhysStorage(class PStorage & __ptr64,class PStorageObject & __ptr64,unsigned long,unsigned int,class PMmStream * __ptr64,int,unsigned int,int) __ptr64
-??0CPhysStorage@@IEAA@AEAVPStorage@@AEAVPStorageObject@@KIPEAVPMmStream@@HIH@Z
-; protected: __cdecl CPhysStorage::CPhysStorage(class PStorage & __ptr64,class PStorageObject & __ptr64,unsigned long,class PMmStream * __ptr64,enum CPhysStorage::EOpenMode,int,unsigned int,int) __ptr64
-??0CPhysStorage@@IEAA@AEAVPStorage@@AEAVPStorageObject@@KPEAVPMmStream@@W4EOpenMode@1@HIH@Z
-; public: __cdecl CPidLookupTable::CPidLookupTable(void) __ptr64
-??0CPidLookupTable@@QEAA@XZ
-; public: __cdecl CPidRemapper::CPidRemapper(class XInterface<struct IPropertyMapper> & __ptr64) __ptr64
-??0CPidRemapper@@QEAA@AEAV?$XInterface@UIPropertyMapper@@@@@Z
-; public: __cdecl CPidRemapper::CPidRemapper(class CPidMapper const & __ptr64,class XInterface<struct IPropertyMapper> & __ptr64,class CRestriction * __ptr64,class CColumnSet * __ptr64,class CSortSet * __ptr64) __ptr64
-??0CPidRemapper@@QEAA@AEBVCPidMapper@@AEAV?$XInterface@UIPropertyMapper@@@@PEAVCRestriction@@PEAVCColumnSet@@PEAVCSortSet@@@Z
-; public: __cdecl CPropListFile::CPropListFile(class CEmptyPropertyList * __ptr64,int,unsigned short const * __ptr64,unsigned long) __ptr64
-??0CPropListFile@@QEAA@PEAVCEmptyPropertyList@@HPEBGK@Z
-; public: __cdecl CPropNameArray::CPropNameArray(class PDeSerStream & __ptr64) __ptr64
-??0CPropNameArray@@QEAA@AEAVPDeSerStream@@@Z
-; public: __cdecl CPropNameArray::CPropNameArray(unsigned int) __ptr64
-??0CPropNameArray@@QEAA@I@Z
-; public: __cdecl CPropStoreManager::CPropStoreManager(unsigned long) __ptr64
-??0CPropStoreManager@@QEAA@K@Z
-; public: __cdecl CPropertyRestriction::CPropertyRestriction(unsigned long,class CFullPropSpec const & __ptr64,class CStorageVariant const & __ptr64) __ptr64
-??0CPropertyRestriction@@QEAA@KAEBVCFullPropSpec@@AEBVCStorageVariant@@@Z
-; public: __cdecl CPropertyRestriction::CPropertyRestriction(void) __ptr64
-??0CPropertyRestriction@@QEAA@XZ
-; public: __cdecl CPropertyStoreWids::CPropertyStoreWids(class CPropStoreManager & __ptr64) __ptr64
-??0CPropertyStoreWids@@QEAA@AEAVCPropStoreManager@@@Z
-; public: __cdecl CPropertyValueParser::CPropertyValueParser(class CQueryScanner & __ptr64,unsigned short,unsigned long) __ptr64
-??0CPropertyValueParser@@QEAA@AEAVCQueryScanner@@GK@Z
-; public: __cdecl CQueryScanner::CQueryScanner(unsigned short const * __ptr64,int,unsigned long,int) __ptr64
-??0CQueryScanner@@QEAA@PEBGHKH@Z
-; public: __cdecl CRangeKeyRepository::CRangeKeyRepository(void) __ptr64
-??0CRangeKeyRepository@@QEAA@XZ
-; public: __cdecl CRcovStrmAppendTrans::CRcovStrmAppendTrans(class PRcovStorageObj & __ptr64) __ptr64
-??0CRcovStrmAppendTrans@@QEAA@AEAVPRcovStorageObj@@@Z
-; public: __cdecl CRcovStrmMDTrans::CRcovStrmMDTrans(class PRcovStorageObj & __ptr64,enum CRcovStrmMDTrans::MDOp,unsigned long) __ptr64
-??0CRcovStrmMDTrans@@QEAA@AEAVPRcovStorageObj@@W4MDOp@0@K@Z
-; protected: __cdecl CRcovStrmTrans::CRcovStrmTrans(class PRcovStorageObj & __ptr64,enum RcovOpType) __ptr64
-??0CRcovStrmTrans@@IEAA@AEAVPRcovStorageObj@@W4RcovOpType@@@Z
-; public: __cdecl CRegAccess::CRegAccess(unsigned long,unsigned short const * __ptr64) __ptr64
-??0CRegAccess@@QEAA@KPEBG@Z
-; public: __cdecl CRegChangeEvent::CRegChangeEvent(unsigned short const * __ptr64,int) __ptr64
-??0CRegChangeEvent@@QEAA@PEBGH@Z
-; public: __cdecl CRegNotify::CRegNotify(unsigned short const * __ptr64) __ptr64
-??0CRegNotify@@QEAA@PEBG@Z
-; public: __cdecl CRequestClient::CRequestClient(unsigned short const * __ptr64,struct IDBProperties * __ptr64) __ptr64
-??0CRequestClient@@QEAA@PEBGPEAUIDBProperties@@@Z
-; public: __cdecl CRequestQueue::CRequestQueue(unsigned int,unsigned int,unsigned int,int,unsigned int,unsigned int,struct _GUID const & __ptr64) __ptr64
-??0CRequestQueue@@QEAA@IIIHIIAEBU_GUID@@@Z
-; public: __cdecl CScopeRestriction::CScopeRestriction(unsigned short const * __ptr64,int,int) __ptr64
-??0CScopeRestriction@@QEAA@PEBGHH@Z
-; public: __cdecl CSdidLookupTable::CSdidLookupTable(void) __ptr64
-??0CSdidLookupTable@@QEAA@XZ
-; public: __cdecl CSizeSerStream::CSizeSerStream(void) __ptr64
-??0CSizeSerStream@@QEAA@XZ
-; public: __cdecl CSort::CSort(unsigned int) __ptr64
-??0CSort@@QEAA@I@Z
-; public: __cdecl CSortSet::CSortSet(unsigned int) __ptr64
-??0CSortSet@@QEAA@I@Z
-; public: __cdecl CStandardPropMapper::CStandardPropMapper(void) __ptr64
-??0CStandardPropMapper@@QEAA@XZ
-; public: __cdecl CSvcQuery::CSvcQuery(unsigned short const * __ptr64,struct IDBProperties * __ptr64) __ptr64
-??0CSvcQuery@@QEAA@PEBGPEAUIDBProperties@@@Z
-; public: __cdecl CSynRestriction::CSynRestriction(class CKey const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
-??0CSynRestriction@@QEAA@AEBVCKey@@KKKH@Z
-; public: __cdecl CTimeLimit::CTimeLimit(unsigned long,unsigned long) __ptr64
-??0CTimeLimit@@QEAA@KK@Z
-; public: __cdecl CTransaction::CTransaction(void) __ptr64
-??0CTransaction@@QEAA@XZ
-; public: __cdecl CUnfilteredRestriction::CUnfilteredRestriction(void) __ptr64
-??0CUnfilteredRestriction@@QEAA@XZ
-; public: __cdecl CValueNormalizer::CValueNormalizer(class PKeyRepository & __ptr64) __ptr64
-??0CValueNormalizer@@QEAA@AEAVPKeyRepository@@@Z
-; public: __cdecl CVirtualString::CVirtualString(unsigned int) __ptr64
-??0CVirtualString@@QEAA@I@Z
-; public: __cdecl CWin32RegAccess::CWin32RegAccess(struct HKEY__ * __ptr64,unsigned short const * __ptr64) __ptr64
-??0CWin32RegAccess@@QEAA@PEAUHKEY__@@PEBG@Z
-; public: __cdecl CWordRestriction::CWordRestriction(class CKeyBuf const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
-??0CWordRestriction@@QEAA@AEBVCKeyBuf@@KKKH@Z
-; public: __cdecl CWorkQueue::CWorkQueue(unsigned int,enum CWorkQueue::WorkQueueType) __ptr64
-??0CWorkQueue@@QEAA@IW4WorkQueueType@0@@Z
-; public: __cdecl CiStorage::CiStorage(unsigned short const * __ptr64,struct ICiCAdviseStatus & __ptr64,unsigned long,unsigned long,int) __ptr64
-??0CiStorage@@QEAA@PEBGAEAUICiCAdviseStatus@@KKH@Z
-; public: __cdecl SStorageObject::SStorageObject(class PStorageObject * __ptr64) __ptr64
-??0SStorageObject@@QEAA@PEAVPStorageObject@@@Z
-; protected: __cdecl CAllocStorageVariant::~CAllocStorageVariant(void) __ptr64
-??1CAllocStorageVariant@@IEAA@XZ
-; public: __cdecl CCatState::~CCatState(void) __ptr64
-??1CCatState@@QEAA@XZ
-; public: __cdecl CCatalogAdmin::~CCatalogAdmin(void) __ptr64
-??1CCatalogAdmin@@QEAA@XZ
-; public: __cdecl CCatalogEnum::~CCatalogEnum(void) __ptr64
-??1CCatalogEnum@@QEAA@XZ
-; public: __cdecl CColumns::~CColumns(void) __ptr64
-??1CColumns@@QEAA@XZ
-; public: __cdecl CContentRestriction::~CContentRestriction(void) __ptr64
-??1CContentRestriction@@QEAA@XZ
-; public: __cdecl CDFA::~CDFA(void) __ptr64
-??1CDFA@@QEAA@XZ
-; public: __cdecl CDbCmdTreeNode::~CDbCmdTreeNode(void) __ptr64
-??1CDbCmdTreeNode@@QEAA@XZ
-; public: __cdecl CDbColumns::~CDbColumns(void) __ptr64
-??1CDbColumns@@QEAA@XZ
-; public: __cdecl CDbPropSet::~CDbPropSet(void) __ptr64
-??1CDbPropSet@@QEAA@XZ
-; public: __cdecl CDbQueryResults::~CDbQueryResults(void) __ptr64
-??1CDbQueryResults@@QEAA@XZ
-; public: __cdecl CDbSortSet::~CDbSortSet(void) __ptr64
-??1CDbSortSet@@QEAA@XZ
-; public: __cdecl CDynStream::~CDynStream(void) __ptr64
-??1CDynStream@@QEAA@XZ
-; public: __cdecl CEventItem::~CEventItem(void) __ptr64
-??1CEventItem@@QEAA@XZ
-; public: __cdecl CEventLog::~CEventLog(void) __ptr64
-??1CEventLog@@QEAA@XZ
-; public: __cdecl CFileMapView::~CFileMapView(void) __ptr64
-??1CFileMapView@@QEAA@XZ
-; public: __cdecl CFilterDaemon::~CFilterDaemon(void) __ptr64
-??1CFilterDaemon@@QEAA@XZ
-; public: virtual __cdecl CFwAsyncWorkItem::~CFwAsyncWorkItem(void) __ptr64
-??1CFwAsyncWorkItem@@UEAA@XZ
-; public: __cdecl CFwEventItem::~CFwEventItem(void) __ptr64
-??1CFwEventItem@@QEAA@XZ
-; public: virtual __cdecl CGenericCiProxy::~CGenericCiProxy(void) __ptr64
-??1CGenericCiProxy@@UEAA@XZ
-; public: __cdecl CImpersonateClient::~CImpersonateClient(void) __ptr64
-??1CImpersonateClient@@QEAA@XZ
-; public: __cdecl CImpersonateSystem::~CImpersonateSystem(void) __ptr64
-??1CImpersonateSystem@@QEAA@XZ
-; public: __cdecl CImpersonationTokenCache::~CImpersonationTokenCache(void) __ptr64
-??1CImpersonationTokenCache@@QEAA@XZ
-; public: __cdecl CInternalPropertyRestriction::~CInternalPropertyRestriction(void) __ptr64
-??1CInternalPropertyRestriction@@QEAA@XZ
-; public: __cdecl CKeyArray::~CKeyArray(void) __ptr64
-??1CKeyArray@@QEAA@XZ
-; public: __cdecl CLangList::~CLangList(void) __ptr64
-??1CLangList@@QEAA@XZ
-; public: __cdecl CMachineAdmin::~CMachineAdmin(void) __ptr64
-??1CMachineAdmin@@QEAA@XZ
-; public: virtual __cdecl CMemSerStream::~CMemSerStream(void) __ptr64
-??1CMemSerStream@@UEAA@XZ
-; public: __cdecl CMetaDataMgr::~CMetaDataMgr(void) __ptr64
-??1CMetaDataMgr@@QEAA@XZ
-; public: virtual __cdecl CMmStream::~CMmStream(void) __ptr64
-??1CMmStream@@UEAA@XZ
-; public: __cdecl CMmStreamConsecBuf::~CMmStreamConsecBuf(void) __ptr64
-??1CMmStreamConsecBuf@@QEAA@XZ
-; public: __cdecl CNatLanguageRestriction::~CNatLanguageRestriction(void) __ptr64
-??1CNatLanguageRestriction@@QEAA@XZ
-; public: __cdecl CNodeRestriction::~CNodeRestriction(void) __ptr64
-??1CNodeRestriction@@QEAA@XZ
-; public: __cdecl CNotRestriction::~CNotRestriction(void) __ptr64
-??1CNotRestriction@@QEAA@XZ
-; public: __cdecl COccRestriction::~COccRestriction(void) __ptr64
-??1COccRestriction@@QEAA@XZ
-; public: __cdecl CParseCommandTree::~CParseCommandTree(void) __ptr64
-??1CParseCommandTree@@QEAA@XZ
-; public: __cdecl CPerfMon::~CPerfMon(void) __ptr64
-??1CPerfMon@@QEAA@XZ
-; public: __cdecl CPhraseRestriction::~CPhraseRestriction(void) __ptr64
-??1CPhraseRestriction@@QEAA@XZ
-; public: virtual __cdecl CPhysStorage::~CPhysStorage(void) __ptr64
-??1CPhysStorage@@UEAA@XZ
-; public: __cdecl CPidLookupTable::~CPidLookupTable(void) __ptr64
-??1CPidLookupTable@@QEAA@XZ
-; public: __cdecl CPidRemapper::~CPidRemapper(void) __ptr64
-??1CPidRemapper@@QEAA@XZ
-; public: __cdecl CProcess::~CProcess(void) __ptr64
-??1CProcess@@QEAA@XZ
-; public: __cdecl CPropStoreManager::~CPropStoreManager(void) __ptr64
-??1CPropStoreManager@@QEAA@XZ
-; public: virtual __cdecl CPropertyList::~CPropertyList(void) __ptr64
-??1CPropertyList@@UEAA@XZ
-; public: __cdecl CPropertyRestriction::~CPropertyRestriction(void) __ptr64
-??1CPropertyRestriction@@QEAA@XZ
-; public: __cdecl CPropertyStore::~CPropertyStore(void) __ptr64
-??1CPropertyStore@@QEAA@XZ
-; public: __cdecl CPropertyStoreWids::~CPropertyStoreWids(void) __ptr64
-??1CPropertyStoreWids@@QEAA@XZ
-; public: __cdecl CQueryUnknown::~CQueryUnknown(void) __ptr64
-??1CQueryUnknown@@QEAA@XZ
-; public: virtual __cdecl CRangeKeyRepository::~CRangeKeyRepository(void) __ptr64
-??1CRangeKeyRepository@@UEAA@XZ
-; public: __cdecl CRegChangeEvent::~CRegChangeEvent(void) __ptr64
-??1CRegChangeEvent@@QEAA@XZ
-; protected: virtual __cdecl CRegNotify::~CRegNotify(void) __ptr64
-??1CRegNotify@@MEAA@XZ
-; public: __cdecl CRestriction::~CRestriction(void) __ptr64
-??1CRestriction@@QEAA@XZ
-; public: __cdecl CScopeAdmin::~CScopeAdmin(void) __ptr64
-??1CScopeAdmin@@QEAA@XZ
-; public: __cdecl CScopeEnum::~CScopeEnum(void) __ptr64
-??1CScopeEnum@@QEAA@XZ
-; public: __cdecl CScopeRestriction::~CScopeRestriction(void) __ptr64
-??1CScopeRestriction@@QEAA@XZ
-; public: __cdecl CSdidLookupTable::~CSdidLookupTable(void) __ptr64
-??1CSdidLookupTable@@QEAA@XZ
-; public: virtual __cdecl CSizeSerStream::~CSizeSerStream(void) __ptr64
-??1CSizeSerStream@@UEAA@XZ
-; public: __cdecl CSort::~CSort(void) __ptr64
-??1CSort@@QEAA@XZ
-; public: __cdecl CSynRestriction::~CSynRestriction(void) __ptr64
-??1CSynRestriction@@QEAA@XZ
-; public: __cdecl CVirtualString::~CVirtualString(void) __ptr64
-??1CVirtualString@@QEAA@XZ
-; public: __cdecl CWin32RegAccess::~CWin32RegAccess(void) __ptr64
-??1CWin32RegAccess@@QEAA@XZ
-; public: __cdecl CWordRestriction::~CWordRestriction(void) __ptr64
-??1CWordRestriction@@QEAA@XZ
-; public: __cdecl CWorkManager::~CWorkManager(void) __ptr64
-??1CWorkManager@@QEAA@XZ
-; public: __cdecl CWorkQueue::~CWorkQueue(void) __ptr64
-??1CWorkQueue@@QEAA@XZ
-; public: __cdecl SStorageObject::~SStorageObject(void) __ptr64
-??1SStorageObject@@QEAA@XZ
-; public: class CDbColId & __ptr64 __cdecl CDbColId::operator=(class CDbColId const & __ptr64) __ptr64
-??4CDbColId@@QEAAAEAV0@AEBV0@@Z
-; public: int __cdecl CDbColId::operator==(class CDbColId const & __ptr64)const  __ptr64
-??8CDbColId@@QEBAHAEBV0@@Z
-; public: void __cdecl CWorkManager::AbortWorkItems(void) __ptr64
-?AbortWorkItems@CWorkManager@@QEAAXXZ
-; public: void __cdecl CQueryScanner::Accept(void) __ptr64
-?Accept@CQueryScanner@@QEAAXXZ
-; public: void __cdecl CQueryScanner::AcceptCommand(void) __ptr64
-?AcceptCommand@CQueryScanner@@QEAAXXZ
-; public: void __cdecl CQueryScanner::AcceptWord(void) __ptr64
-?AcceptWord@CQueryScanner@@QEAAXXZ
-; public: int __cdecl CSdidLookupTable::AccessCheck(unsigned long,void * __ptr64,unsigned long,int & __ptr64) __ptr64
-?AccessCheck@CSdidLookupTable@@QEAAHKPEAXKAEAH@Z
-; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqLine(int) __ptr64
-?AcqLine@CQueryScanner@@QEAAPEAGH@Z
-; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqPath(void) __ptr64
-?AcqPath@CQueryScanner@@QEAAPEAGXZ
-; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqPhrase(void) __ptr64
-?AcqPhrase@CQueryScanner@@QEAAPEAGXZ
-; public: class CRangeRestriction * __ptr64 __cdecl CRangeKeyRepository::AcqRst(void) __ptr64
-?AcqRst@CRangeKeyRepository@@QEAAPEAVCRangeRestriction@@XZ
-; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqWord(void) __ptr64
-?AcqWord@CQueryScanner@@QEAAPEAGXZ
-; private: void __cdecl CPropertyStore::AcquireRead(class CReadWriteLockRecord & __ptr64) __ptr64
-?AcquireRead@CPropertyStore@@AEAAXAEAVCReadWriteLockRecord@@@Z
-; public: int __cdecl CDbColumns::Add(class CDbColId const & __ptr64,unsigned int) __ptr64
-?Add@CDbColumns@@QEAAHAEBVCDbColId@@I@Z
-; public: void __cdecl CDbQueryResults::Add(unsigned short * __ptr64,unsigned long) __ptr64
-?Add@CDbQueryResults@@QEAAXPEAGK@Z
-; public: int __cdecl CDbSortSet::Add(class CDbColId const & __ptr64,unsigned long,unsigned int) __ptr64
-?Add@CDbSortSet@@QEAAHAEBVCDbColId@@KI@Z
-; public: int __cdecl CDbSortSet::Add(class CDbSortKey const & __ptr64,unsigned int) __ptr64
-?Add@CDbSortSet@@QEAAHAEBVCDbSortKey@@I@Z
-; public: int __cdecl CKeyArray::Add(int,class CKey const & __ptr64) __ptr64
-?Add@CKeyArray@@QEAAHHAEBVCKey@@@Z
-; public: int __cdecl CKeyArray::Add(int,class CKeyBuf const & __ptr64) __ptr64
-?Add@CKeyArray@@QEAAHHAEBVCKeyBuf@@@Z
-; public: void __cdecl CWorkQueue::Add(class PWorkItem * __ptr64) __ptr64
-?Add@CWorkQueue@@QEAAXPEAVPWorkItem@@@Z
-; public: void __cdecl CEventItem::AddArg(unsigned long) __ptr64
-?AddArg@CEventItem@@QEAAXK@Z
-; public: void __cdecl CEventItem::AddArg(unsigned short const * __ptr64) __ptr64
-?AddArg@CEventItem@@QEAAXPEBG@Z
-; public: void __cdecl CFwEventItem::AddArg(unsigned long) __ptr64
-?AddArg@CFwEventItem@@QEAAXK@Z
-; public: void __cdecl CFwEventItem::AddArg(unsigned short const * __ptr64) __ptr64
-?AddArg@CFwEventItem@@QEAAXPEBG@Z
-; public: void __cdecl CCatalogAdmin::AddCachedProperty(class CFullPropSpec const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
-?AddCachedProperty@CCatalogAdmin@@QEAAXAEBVCFullPropSpec@@KKKH@Z
-; public: void __cdecl CCatState::AddCatalog(class XPtrST<unsigned short> & __ptr64) __ptr64
-?AddCatalog@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z
-; public: void __cdecl CMachineAdmin::AddCatalog(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
-?AddCatalog@CMachineAdmin@@QEAAXPEBG0@Z
-; public: void __cdecl CNodeRestriction::AddChild(class CRestriction * __ptr64,unsigned int & __ptr64) __ptr64
-?AddChild@CNodeRestriction@@QEAAXPEAVCRestriction@@AEAI@Z
-; public: void __cdecl CCatState::AddDir(class XPtrST<unsigned short> & __ptr64) __ptr64
-?AddDir@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z
-; public: virtual void __cdecl CPropertyList::AddEntry(class CPropEntry * __ptr64,int) __ptr64
-?AddEntry@CPropertyList@@UEAAXPEAVCPropEntry@@H@Z
-; public: void __cdecl CEventItem::AddError(unsigned long) __ptr64
-?AddError@CEventItem@@QEAAXK@Z
-; public: void __cdecl CSynRestriction::AddKey(class CKeyBuf const & __ptr64) __ptr64
-?AddKey@CSynRestriction@@QEAAXAEBVCKeyBuf@@@Z
-; public: void __cdecl CCatState::AddMachine(class XPtrST<unsigned short> & __ptr64) __ptr64
-?AddMachine@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z
-; public: virtual unsigned long __cdecl CDbProperties::AddRef(void) __ptr64
-?AddRef@CDbProperties@@UEAAKXZ
-; public: virtual unsigned long __cdecl CEmptyPropertyList::AddRef(void) __ptr64
-?AddRef@CEmptyPropertyList@@UEAAKXZ
-; public: virtual unsigned long __cdecl CEnumString::AddRef(void) __ptr64
-?AddRef@CEnumString@@UEAAKXZ
-; public: virtual unsigned long __cdecl CEnumWorkid::AddRef(void) __ptr64
-?AddRef@CEnumWorkid@@UEAAKXZ
-; public: virtual unsigned long __cdecl CFwPropertyMapper::AddRef(void) __ptr64
-?AddRef@CFwPropertyMapper@@UEAAKXZ
-; public: virtual unsigned long __cdecl CQueryUnknown::AddRef(void) __ptr64
-?AddRef@CQueryUnknown@@UEAAKXZ
-; public: void __cdecl CWorkQueue::AddRefWorkThreads(void) __ptr64
-?AddRefWorkThreads@CWorkQueue@@QEAAXXZ
-; public: void __cdecl CCatalogAdmin::AddScope(unsigned short const * __ptr64,unsigned short const * __ptr64,int,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
-?AddScope@CCatalogAdmin@@QEAAXPEBG0H00@Z
-; public: int __cdecl CDbSortNode::AddSortColumn(struct tagDBID const & __ptr64,int,unsigned long) __ptr64
-?AddSortColumn@CDbSortNode@@QEAAHAEBUtagDBID@@HK@Z
-; public: int __cdecl CDbNestingNode::AddTable(class CDbCmdTreeNode * __ptr64) __ptr64
-?AddTable@CDbNestingNode@@QEAAHPEAVCDbCmdTreeNode@@@Z
-; public: void __cdecl CWorkManager::AddToWorkList(class CFwAsyncWorkItem * __ptr64) __ptr64
-?AddToWorkList@CWorkManager@@QEAAXPEAVCFwAsyncWorkItem@@@Z
-; public: void __cdecl CFwAsyncWorkItem::AddToWorkQueue(void) __ptr64
-?AddToWorkQueue@CFwAsyncWorkItem@@QEAAXXZ
-; public: static unsigned short * __ptr64 __cdecl CDbCmdTreeNode::AllocAndCopyWString(unsigned short const * __ptr64)
-?AllocAndCopyWString@CDbCmdTreeNode@@SAPEAGPEBG@Z
-; unsigned short * __ptr64 __cdecl AllocHeapAndCopy(unsigned short const * __ptr64,unsigned long & __ptr64)
-?AllocHeapAndCopy@@YAPEAGPEBGAEAK@Z
-; unsigned short * __ptr64 __cdecl AllocHeapAndGetWString(class PDeSerStream & __ptr64)
-?AllocHeapAndGetWString@@YAPEAGAEAVPDeSerStream@@@Z
-; public: void __cdecl CEnumString::Append(unsigned short const * __ptr64) __ptr64
-?Append@CEnumString@@QEAAXPEBG@Z
-; public: void __cdecl CEnumWorkid::Append(unsigned long) __ptr64
-?Append@CEnumWorkid@@QEAAXK@Z
-; protected: void __cdecl CDbCmdTreeNode::AppendChild(class CDbCmdTreeNode * __ptr64) __ptr64
-?AppendChild@CDbCmdTreeNode@@IEAAXPEAV1@@Z
-; protected: int __cdecl CDbListAnchor::AppendListElement(unsigned short,struct tagDBID const & __ptr64) __ptr64
-?AppendListElement@CDbListAnchor@@IEAAHGAEBUtagDBID@@@Z
-; protected: int __cdecl CDbListAnchor::AppendListElement(class CDbCmdTreeNode * __ptr64) __ptr64
-?AppendListElement@CDbListAnchor@@IEAAHPEAVCDbCmdTreeNode@@@Z
-; public: int __cdecl CDbProjectListAnchor::AppendListElement(struct tagDBID const & __ptr64,unsigned short * __ptr64) __ptr64
-?AppendListElement@CDbProjectListAnchor@@QEAAHAEBUtagDBID@@PEAG@Z
-; public: unsigned __int64 __cdecl CPropStoreManager::BeginTransaction(void) __ptr64
-?BeginTransaction@CPropStoreManager@@QEAA_KXZ
-; public: static long __cdecl CCiOle::BindIFilter(unsigned short const * __ptr64,struct IUnknown * __ptr64,struct _GUID const & __ptr64,struct IFilter * __ptr64 * __ptr64,int)
-?BindIFilter@CCiOle@@SAJPEBGPEAUIUnknown@@AEBU_GUID@@PEAPEAUIFilter@@H@Z
-; public: static long __cdecl CCiOle::BindIFilter(unsigned short const * __ptr64,struct IUnknown * __ptr64,struct IFilter * __ptr64 * __ptr64,int)
-?BindIFilter@CCiOle@@SAJPEBGPEAUIUnknown@@PEAPEAUIFilter@@H@Z
-; public: unsigned long * __ptr64 __cdecl CPhysStorage::BorrowBuffer(unsigned long,int,int) __ptr64
-?BorrowBuffer@CPhysStorage@@QEAAPEAKKHH@Z
-; public: unsigned long * __ptr64 __cdecl CPhysStorage::BorrowNewBuffer(unsigned long) __ptr64
-?BorrowNewBuffer@CPhysStorage@@QEAAPEAKK@Z
-; void __cdecl BuildRegistryPropertiesKey(class XArray<unsigned short> & __ptr64,unsigned short const * __ptr64)
-?BuildRegistryPropertiesKey@@YAXAEAV?$XArray@G@@PEBG@Z
-; void __cdecl BuildRegistryScopesKey(class XArray<unsigned short> & __ptr64,unsigned short const * __ptr64)
-?BuildRegistryScopesKey@@YAXAEAV?$XArray@G@@PEBG@Z
-; void __cdecl CIShutdown(void)
-?CIShutdown@@YAXXZ
-; public: void __cdecl CCatState::ChangeCurrentCatalog(unsigned short const * __ptr64) __ptr64
-?ChangeCurrentCatalog@CCatState@@QEAAXPEBG@Z
-; public: void __cdecl CCatState::ChangeCurrentDepth(int) __ptr64
-?ChangeCurrentDepth@CCatState@@QEAAXH@Z
-; public: void __cdecl CCatState::ChangeCurrentMachine(unsigned short const * __ptr64) __ptr64
-?ChangeCurrentMachine@CCatState@@QEAAXPEBG@Z
-; public: void __cdecl CCatState::ChangeCurrentScope(unsigned short const * __ptr64) __ptr64
-?ChangeCurrentScope@CCatState@@QEAAXPEBG@Z
-; private: void __cdecl CPropStoreInfo::ChangeDirty(int) __ptr64
-?ChangeDirty@CPropStoreInfo@@AEAAXH@Z
-; public: long __cdecl CLocalGlobalPropertyList::CheckError(unsigned long & __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
-?CheckError@CLocalGlobalPropertyList@@QEAAJAEAKPEAPEAG@Z
-; public: long __cdecl CPropListFile::CheckError(unsigned long & __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
-?CheckError@CPropListFile@@QEAAJAEAKPEAPEAG@Z
-; public: static int __cdecl CiStorage::CheckHasIndexTable(unsigned short const * __ptr64)
-?CheckHasIndexTable@CiStorage@@SAHPEBG@Z
-CiCreateSecurityDescriptor
-; int __cdecl CiGetPassword(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64)
-?CiGetPassword@@YAHPEBG0PEAG@Z
-; void * __ptr64 __cdecl CiNtOpen(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long)
-?CiNtOpen@@YAPEAXPEBGKKK@Z
-; long __cdecl CiNtOpenNoThrow(void * __ptr64 & __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long)
-?CiNtOpenNoThrow@@YAJAEAPEAXPEBGKKK@Z
-; public: void __cdecl CDbColId::Cleanup(void) __ptr64
-?Cleanup@CDbColId@@QEAAXXZ
-; protected: void __cdecl CDbCmdTreeNode::CleanupDataValue(void) __ptr64
-?CleanupDataValue@CDbCmdTreeNode@@IEAAXXZ
-; public: void __cdecl CCombinedPropertyList::ClearList(void) __ptr64
-?ClearList@CCombinedPropertyList@@QEAAXXZ
-; public: void __cdecl CPropertyList::ClearList(void) __ptr64
-?ClearList@CPropertyList@@QEAAXXZ
-; public: class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::Clone(int)const  __ptr64
-?Clone@CDbCmdTreeNode@@QEBAPEAV1@H@Z
-; public: virtual long __cdecl CEnumString::Clone(struct IEnumString * __ptr64 * __ptr64) __ptr64
-?Clone@CEnumString@@UEAAJPEAPEAUIEnumString@@@Z
-; public: class CNodeRestriction * __ptr64 __cdecl CNodeRestriction::Clone(void)const  __ptr64
-?Clone@CNodeRestriction@@QEBAPEAV1@XZ
-; public: class COccRestriction * __ptr64 __cdecl COccRestriction::Clone(void)const  __ptr64
-?Clone@COccRestriction@@QEBAPEAV1@XZ
-; public: class CRestriction * __ptr64 __cdecl CRestriction::Clone(void)const  __ptr64
-?Clone@CRestriction@@QEBAPEAV1@XZ
-; public: void __cdecl CPhysStorage::Close(void) __ptr64
-?Close@CPhysStorage@@QEAAXXZ
-; protected: void __cdecl CPipeClient::Close(void) __ptr64
-?Close@CPipeClient@@IEAAXXZ
-; public: void __cdecl COLEPropManager::CPropSetMap::Close(void) __ptr64
-?Close@CPropSetMap@COLEPropManager@@QEAAXXZ
-; public: void __cdecl CPropStoreManager::CloseRecord(class CCompositePropRecord * __ptr64) __ptr64
-?CloseRecord@CPropStoreManager@@QEAAXPEAVCCompositePropRecord@@@Z
-; public: void __cdecl CPropStoreManager::CloseRecord(class CCompositePropRecordForWrites * __ptr64) __ptr64
-?CloseRecord@CPropStoreManager@@QEAAXPEAVCCompositePropRecordForWrites@@@Z
-; public: void __cdecl CRcovStrmAppendTrans::Commit(void) __ptr64
-?Commit@CRcovStrmAppendTrans@@QEAAXXZ
-; public: void __cdecl CRcovStrmMDTrans::Commit(void) __ptr64
-?Commit@CRcovStrmMDTrans@@QEAAXXZ
-; public: void __cdecl CRcovStrmWriteTrans::Commit(void) __ptr64
-?Commit@CRcovStrmWriteTrans@@QEAAXXZ
-; public: static int __cdecl CDriveInfo::ContainsDrive(unsigned short const * __ptr64)
-?ContainsDrive@CDriveInfo@@SAHPEBG@Z
-; public: void __cdecl CMachineAdmin::CreateSubdirs(unsigned short const * __ptr64) __ptr64
-?CreateSubdirs@CMachineAdmin@@QEAAXPEBG@Z
-; public: void __cdecl CRequestClient::DataWriteRead(void * __ptr64,unsigned long,void * __ptr64,unsigned long,unsigned long & __ptr64) __ptr64
-?DataWriteRead@CRequestClient@@QEAAXPEAXK0KAEAK@Z
-; void __cdecl DecodeEscapes(unsigned short * __ptr64,unsigned long & __ptr64,unsigned short * __ptr64)
-?DecodeEscapes@@YAXPEAGAEAK0@Z
-; void __cdecl DecodeHtmlNumeric(unsigned short * __ptr64)
-?DecodeHtmlNumeric@@YAXPEAG@Z
-; void __cdecl DecodeURLEscapes(unsigned char * __ptr64,unsigned long & __ptr64,unsigned short * __ptr64,unsigned long)
-?DecodeURLEscapes@@YAXPEAEAEAKPEAGK@Z
-; public: void __cdecl CPropStoreManager::DeleteRecord(unsigned long) __ptr64
-?DeleteRecord@CPropStoreManager@@QEAAXK@Z
-; public: void __cdecl CCatalogAdmin::DeleteRegistryParamNoThrow(unsigned short const * __ptr64) __ptr64
-?DeleteRegistryParamNoThrow@CCatalogAdmin@@QEAAXPEBG@Z
-; public: static unsigned int __cdecl CiStorage::DetermineDriveType(unsigned short const * __ptr64)
-?DetermineDriveType@CiStorage@@SAIPEBG@Z
-; public: int __cdecl CMachineAdmin::DisableCI(void) __ptr64
-?DisableCI@CMachineAdmin@@QEAAHXZ
-; public: void __cdecl CRegNotify::DisableNotification(void) __ptr64
-?DisableNotification@CRegNotify@@QEAAXXZ
-; public: void __cdecl CMetaDataMgr::DisableVPathNotify(void) __ptr64
-?DisableVPathNotify@CMetaDataMgr@@QEAAXXZ
-; public: void __cdecl CRequestClient::Disconnect(void) __ptr64
-?Disconnect@CRequestClient@@QEAAXXZ
-; public: long __cdecl CCopyRcovObject::DoIt(void) __ptr64
-?DoIt@CCopyRcovObject@@QEAAJXZ
-; public: long __cdecl CFilterDaemon::DoUpdates(void) __ptr64
-?DoUpdates@CFilterDaemon@@QEAAJXZ
-; public: void __cdecl CFwAsyncWorkItem::Done(void) __ptr64
-?Done@CFwAsyncWorkItem@@QEAAXXZ
-; long __cdecl DumpWorkId(unsigned short const * __ptr64,unsigned long,unsigned char * __ptr64,unsigned long & __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long)
-?DumpWorkId@@YAJPEBGKPEAEAEAK00K@Z
-; public: void __cdecl CPidLookupTable::Empty(void) __ptr64
-?Empty@CPidLookupTable@@QEAAXXZ
-; public: void __cdecl CPropStoreManager::Empty(void) __ptr64
-?Empty@CPropStoreManager@@QEAAXXZ
-; public: void __cdecl CRcovStrmWriteTrans::Empty(void) __ptr64
-?Empty@CRcovStrmWriteTrans@@QEAAXXZ
-; public: void __cdecl CSdidLookupTable::Empty(void) __ptr64
-?Empty@CSdidLookupTable@@QEAAXXZ
-; public: int __cdecl CMachineAdmin::EnableCI(void) __ptr64
-?EnableCI@CMachineAdmin@@QEAAHXZ
-; public: void __cdecl CMetaDataMgr::EnableVPathNotify(class CMetaDataVPathChangeCallBack * __ptr64) __ptr64
-?EnableVPathNotify@CMetaDataMgr@@QEAAXPEAVCMetaDataVPathChangeCallBack@@@Z
-; public: void __cdecl CPropStoreManager::EndTransaction(unsigned __int64,int,unsigned long,unsigned long) __ptr64
-?EndTransaction@CPropStoreManager@@QEAAX_KHKK@Z
-; public: int __cdecl CWin32RegAccess::Enum(unsigned short * __ptr64,unsigned long) __ptr64
-?Enum@CWin32RegAccess@@QEAAHPEAGK@Z
-; public: virtual long __cdecl CEmptyPropertyList::EnumPropInfo(unsigned long,unsigned short const * __ptr64 * __ptr64,struct tagDBID * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
-?EnumPropInfo@CEmptyPropertyList@@UEAAJKPEAPEBGPEAPEAUtagDBID@@PEAGPEAI@Z
-; public: void __cdecl CMetaDataMgr::EnumVPaths(class CMetaDataCallBack & __ptr64) __ptr64
-?EnumVPaths@CMetaDataMgr@@QEAAXAEAVCMetaDataCallBack@@@Z
-; public: void __cdecl CMetaDataMgr::EnumVServers(class CMetaDataVirtualServerCallBack & __ptr64) __ptr64
-?EnumVServers@CMetaDataMgr@@QEAAXAEAVCMetaDataVirtualServerCallBack@@@Z
-; public: static void __cdecl CiStorage::EnumerateFilesInDir(unsigned short const * __ptr64,class CEnumString & __ptr64)
-?EnumerateFilesInDir@CiStorage@@SAXPEBGAEAVCEnumString@@@Z
-; public: int __cdecl CPidLookupTable::EnumerateProperty(class CFullPropSpec & __ptr64,unsigned int & __ptr64) __ptr64
-?EnumerateProperty@CPidLookupTable@@QEAAHAEAVCFullPropSpec@@AEAI@Z
-; public: void __cdecl CRegAccess::EnumerateValues(unsigned short * __ptr64,class CRegCallBack & __ptr64) __ptr64
-?EnumerateValues@CRegAccess@@QEAAXPEAGAEAVCRegCallBack@@@Z
-; public: int __cdecl CMmStreamConsecBuf::Eof(void) __ptr64
-?Eof@CMmStreamConsecBuf@@QEAAHXZ
-; public: int __cdecl CMetaDataMgr::ExtensionHasScriptMap(unsigned short const * __ptr64) __ptr64
-?ExtensionHasScriptMap@CMetaDataMgr@@QEAAHPEBG@Z
-; public: virtual long __cdecl CPidConverter::FPSToPROPID(class CFullPropSpec const & __ptr64,unsigned long & __ptr64) __ptr64
-?FPSToPROPID@CPidConverter@@UEAAJAEBVCFullPropSpec@@AEAK@Z
-; public: void __cdecl CPropStoreManager::FastInit(class CiStorage * __ptr64) __ptr64
-?FastInit@CPropStoreManager@@QEAAXPEAVCiStorage@@@Z
-; public: void __cdecl COLEPropManager::FetchProperty(struct _GUID const & __ptr64,struct tagPROPSPEC const & __ptr64,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
-?FetchProperty@COLEPropManager@@QEAAXAEBU_GUID@@AEBUtagPROPSPEC@@PEAUtagPROPVARIANT@@PEAI@Z
-; public: int __cdecl CKeyArray::FillMax(int) __ptr64
-?FillMax@CKeyArray@@QEAAHH@Z
-; public: class CPropEntry const * __ptr64 __cdecl CEmptyPropertyList::Find(class CDbColId const & __ptr64) __ptr64
-?Find@CEmptyPropertyList@@QEAAPEBVCPropEntry@@AEBVCDbColId@@@Z
-; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Find(class CDbColId const & __ptr64) __ptr64
-?Find@CPropertyList@@UEAAPEBVCPropEntry@@AEBVCDbColId@@@Z
-; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Find(unsigned short const * __ptr64) __ptr64
-?Find@CPropertyList@@UEAAPEBVCPropEntry@@PEBG@Z
-; public: int __cdecl CPidLookupTable::FindPropid(class CFullPropSpec const & __ptr64,unsigned long & __ptr64,int) __ptr64
-?FindPropid@CPidLookupTable@@QEAAHAEBVCFullPropSpec@@AEAKH@Z
-; public: void __cdecl CDynStream::Flush(void) __ptr64
-?Flush@CDynStream@@QEAAXXZ
-; public: void __cdecl CPhysStorage::Flush(int) __ptr64
-?Flush@CPhysStorage@@QEAAXH@Z
-; public: void __cdecl CPropStoreManager::Flush(void) __ptr64
-?Flush@CPropStoreManager@@QEAAXXZ
-; public: static void __cdecl CCiOle::FlushIdle(void)
-?FlushIdle@CCiOle@@SAXXZ
-; public: struct tagDBCOMMANDTREE * __ptr64 __cdecl CTextToTree::FormFullTree(void) __ptr64
-?FormFullTree@CTextToTree@@QEAAPEAUtagDBCOMMANDTREE@@XZ
-; class CDbCmdTreeNode * __ptr64 __cdecl FormQueryTree(class CDbCmdTreeNode & __ptr64,class CCatState & __ptr64,struct IColumnMapper * __ptr64,int,int)
-?FormQueryTree@@YAPEAVCDbCmdTreeNode@@AEAV1@AEAVCCatState@@PEAUIColumnMapper@@HH@Z
-FsCiShutdown
-; public: unsigned long __cdecl CRegAccess::Get(unsigned short const * __ptr64) __ptr64
-?Get@CRegAccess@@QEAAKPEBG@Z
-; public: void __cdecl CRegAccess::Get(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned int) __ptr64
-?Get@CRegAccess@@QEAAXPEBGPEAGI@Z
-; public: int __cdecl CWin32RegAccess::Get(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
-?Get@CWin32RegAccess@@QEAAHPEBGAEAK@Z
-; public: int __cdecl CWin32RegAccess::Get(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned int,int) __ptr64
-?Get@CWin32RegAccess@@QEAAHPEBGPEAGIH@Z
-; public: virtual long __cdecl CPropertyList::GetAllEntries(class CPropEntry * __ptr64 * __ptr64,unsigned long) __ptr64
-?GetAllEntries@CPropertyList@@UEAAJPEAPEAVCPropEntry@@K@Z
-; public: short __cdecl CAllocStorageVariant::GetBOOL(unsigned int)const  __ptr64
-?GetBOOL@CAllocStorageVariant@@QEBAFI@Z
-; public: unsigned long __cdecl CPropStoreManager::GetBackupSize(unsigned long) __ptr64
-?GetBackupSize@CPropStoreManager@@QEAAKK@Z
-; public: virtual void __cdecl CMemDeSerStream::GetBlob(unsigned char * __ptr64,unsigned long) __ptr64
-?GetBlob@CMemDeSerStream@@UEAAXPEAEK@Z
-; unsigned long __cdecl GetBrowserCodepage(class CWebServer & __ptr64,unsigned long)
-?GetBrowserCodepage@@YAKAEAVCWebServer@@K@Z
-; public: virtual unsigned char __cdecl CMemDeSerStream::GetByte(void) __ptr64
-?GetByte@CMemDeSerStream@@UEAAEXZ
-; public: unsigned short const * __ptr64 __cdecl CCatState::GetCD(void) __ptr64
-?GetCD@CCatState@@QEAAPEBGXZ
-; public: int __cdecl CWebServer::GetCGIVariable(char const * __ptr64,class XArray<unsigned short> & __ptr64,unsigned long & __ptr64) __ptr64
-?GetCGIVariable@CWebServer@@QEAAHPEBDAEAV?$XArray@G@@AEAK@Z
-; public: int __cdecl CWebServer::GetCGIVariableW(unsigned short const * __ptr64,class XArray<unsigned short> & __ptr64,unsigned long & __ptr64) __ptr64
-?GetCGIVariableW@CWebServer@@QEAAHPEBGAEAV?$XArray@G@@AEAK@Z
-; public: struct _GUID  __cdecl CAllocStorageVariant::GetCLSID(unsigned int)const  __ptr64
-?GetCLSID@CAllocStorageVariant@@QEBA?AU_GUID@@I@Z
-; public: union tagCY  __cdecl CAllocStorageVariant::GetCY(unsigned int)const  __ptr64
-?GetCY@CAllocStorageVariant@@QEBA?ATtagCY@@I@Z
-; public: unsigned short const * __ptr64 __cdecl CCatState::GetCategory(unsigned int)const  __ptr64
-?GetCategory@CCatState@@QEBAPEBGI@Z
-; public: virtual void __cdecl CMemDeSerStream::GetChar(char * __ptr64,unsigned long) __ptr64
-?GetChar@CMemDeSerStream@@UEAAXPEADK@Z
-; public: unsigned short const * __ptr64 __cdecl CCatState::GetColumn(unsigned int)const  __ptr64
-?GetColumn@CCatState@@QEBAPEBGI@Z
-; public: unsigned short __cdecl CQueryScanner::GetCommandChar(void) __ptr64
-?GetCommandChar@CQueryScanner@@QEAAGXZ
-; public: double __cdecl CAllocStorageVariant::GetDATE(unsigned int)const  __ptr64
-?GetDATE@CAllocStorageVariant@@QEBANI@Z
-; public: int __cdecl CCatalogAdmin::GetDWORDParam(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
-?GetDWORDParam@CCatalogAdmin@@QEAAHPEBGAEAK@Z
-; public: int __cdecl CMachineAdmin::GetDWORDParam(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
-?GetDWORDParam@CMachineAdmin@@QEAAHPEBGAEAK@Z
-; public: void __cdecl CDriveInfo::GetDiskSpace(__int64 & __ptr64,__int64 & __ptr64) __ptr64
-?GetDiskSpace@CDriveInfo@@QEAAXAEA_J0@Z
-; public: virtual double __cdecl CMemDeSerStream::GetDouble(void) __ptr64
-?GetDouble@CMemDeSerStream@@UEAANXZ
-; public: static void __cdecl CDriveInfo::GetDrive(unsigned short const * __ptr64,unsigned short * __ptr64)
-?GetDrive@CDriveInfo@@SAXPEBGPEAG@Z
-; public: unsigned char * __ptr64 __cdecl CGenericCiProxy::GetEntryBuffer(unsigned long & __ptr64) __ptr64
-?GetEntryBuffer@CGenericCiProxy@@QEAAPEAEAEAK@Z
-; public: struct _FILETIME  __cdecl CAllocStorageVariant::GetFILETIME(unsigned int)const  __ptr64
-?GetFILETIME@CAllocStorageVariant@@QEBA?AU_FILETIME@@I@Z
-; public: int __cdecl CPathParser::GetFileName(unsigned short * __ptr64,unsigned long & __ptr64)const  __ptr64
-?GetFileName@CPathParser@@QEBAHPEAGAEAK@Z
-; public: enum CDriveInfo::eFileSystem  __cdecl CDriveInfo::GetFileSystem(int) __ptr64
-?GetFileSystem@CDriveInfo@@QEAA?AW4eFileSystem@1@H@Z
-; public: virtual float __cdecl CMemDeSerStream::GetFloat(void) __ptr64
-?GetFloat@CMemDeSerStream@@UEAAMXZ
-; public: virtual void __cdecl CMemDeSerStream::GetGUID(struct _GUID & __ptr64) __ptr64
-?GetGUID@CMemDeSerStream@@UEAAXAEAU_GUID@@@Z
-; class CPropListFile * __ptr64 __cdecl GetGlobalPropListFile(void)
-?GetGlobalPropListFile@@YAPEAVCPropListFile@@XZ
-; class CStaticPropertyList * __ptr64 __cdecl GetGlobalStaticPropertyList(void)
-?GetGlobalStaticPropertyList@@YAPEAVCStaticPropertyList@@XZ
-; public: short __cdecl CAllocStorageVariant::GetI2(unsigned int)const  __ptr64
-?GetI2@CAllocStorageVariant@@QEBAFI@Z
-; public: long __cdecl CAllocStorageVariant::GetI4(unsigned int)const  __ptr64
-?GetI4@CAllocStorageVariant@@QEBAJI@Z
-; public: union _LARGE_INTEGER  __cdecl CAllocStorageVariant::GetI8(unsigned int)const  __ptr64
-?GetI8@CAllocStorageVariant@@QEBA?AT_LARGE_INTEGER@@I@Z
-; unsigned long __cdecl GetLCIDFromString(unsigned short * __ptr64)
-?GetLCIDFromString@@YAKPEAG@Z
-; public: char * __ptr64 __cdecl CAllocStorageVariant::GetLPSTR(unsigned int)const  __ptr64
-?GetLPSTR@CAllocStorageVariant@@QEBAPEADI@Z
-; public: unsigned short * __ptr64 __cdecl CAllocStorageVariant::GetLPWSTR(unsigned int)const  __ptr64
-?GetLPWSTR@CAllocStorageVariant@@QEBAPEAGI@Z
-; public: unsigned short const * __ptr64 __cdecl CCatalogAdmin::GetLocation(void) __ptr64
-?GetLocation@CCatalogAdmin@@QEAAPEBGXZ
-; public: virtual long __cdecl CMemDeSerStream::GetLong(void) __ptr64
-?GetLong@CMemDeSerStream@@UEAAJXZ
-; public: int __cdecl CQueryScanner::GetNumber(unsigned long & __ptr64,int & __ptr64) __ptr64
-?GetNumber@CQueryScanner@@QEAAHAEAKAEAH@Z
-; public: int __cdecl CQueryScanner::GetNumber(double & __ptr64) __ptr64
-?GetNumber@CQueryScanner@@QEAAHAEAN@Z
-; public: int __cdecl CQueryScanner::GetNumber(__int64 & __ptr64,int & __ptr64) __ptr64
-?GetNumber@CQueryScanner@@QEAAHAEA_JAEAH@Z
-; public: int __cdecl CQueryScanner::GetNumber(unsigned __int64 & __ptr64,int & __ptr64) __ptr64
-?GetNumber@CQueryScanner@@QEAAHAEA_KAEAH@Z
-; public: void __cdecl CKeyDeComp::GetOffset(struct BitOffset & __ptr64) __ptr64
-?GetOffset@CKeyDeComp@@QEAAXAEAUBitOffset@@@Z
-; long __cdecl GetOleDBErrorInfo(struct IUnknown * __ptr64,struct _GUID const & __ptr64,unsigned long,unsigned int,struct tagERRORINFO * __ptr64,struct IErrorInfo * __ptr64 * __ptr64)
-?GetOleDBErrorInfo@@YAJPEAUIUnknown@@AEBU_GUID@@KIPEAUtagERRORINFO@@PEAPEAUIErrorInfo@@@Z
-; long __cdecl GetOleError(class CException & __ptr64)
-?GetOleError@@YAJAEAVCException@@@Z
-; public: unsigned long __cdecl CWebServer::GetPhysicalPath(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long,unsigned long) __ptr64
-?GetPhysicalPath@CWebServer@@QEAAKPEBGPEAGKK@Z
-; public: int __cdecl CEmptyPropertyList::GetPropInfo(class CDbColId const & __ptr64,unsigned short const * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
-?GetPropInfo@CEmptyPropertyList@@QEAAHAEBVCDbColId@@PEAPEBGPEAGPEAI@Z
-; public: int __cdecl CEmptyPropertyList::GetPropInfo(unsigned short const * __ptr64,class CDbColId * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
-?GetPropInfo@CEmptyPropertyList@@QEAAHPEBGPEAPEAVCDbColId@@PEAGPEAI@Z
-; public: virtual long __cdecl CEmptyPropertyList::GetPropInfoFromId(struct tagDBID const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
-?GetPropInfoFromId@CEmptyPropertyList@@UEAAJPEBUtagDBID@@PEAPEAGPEAGPEAI@Z
-; public: virtual long __cdecl CEmptyPropertyList::GetPropInfoFromName(unsigned short const * __ptr64,struct tagDBID * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
-?GetPropInfoFromName@CEmptyPropertyList@@UEAAJPEBGPEAPEAUtagDBID@@PEAGPEAI@Z
-; public: static unsigned short __cdecl CEmptyPropertyList::GetPropType(unsigned int)
-?GetPropType@CEmptyPropertyList@@SAGI@Z
-; public: static unsigned int __cdecl CEmptyPropertyList::GetPropTypeCount(void)
-?GetPropTypeCount@CEmptyPropertyList@@SAIXZ
-; public: static unsigned short const * __ptr64 __cdecl CEmptyPropertyList::GetPropTypeName(unsigned int)
-?GetPropTypeName@CEmptyPropertyList@@SAPEBGI@Z
-; public: virtual long __cdecl CDbProperties::GetProperties(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPSET * __ptr64 * __ptr64) __ptr64
-?GetProperties@CDbProperties@@UEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPSET@@@Z
-; public: void __cdecl CGetDbProps::GetProperties(struct IDBProperties * __ptr64,unsigned long) __ptr64
-?GetProperties@CGetDbProps@@QEAAXPEAUIDBProperties@@K@Z
-; public: virtual long __cdecl CDbProperties::GetPropertyInfo(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPINFOSET * __ptr64 * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
-?GetPropertyInfo@CDbProperties@@UEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPINFOSET@@PEAPEAG@Z
-; public: float __cdecl CAllocStorageVariant::GetR4(unsigned int)const  __ptr64
-?GetR4@CAllocStorageVariant@@QEBAMI@Z
-; public: double __cdecl CAllocStorageVariant::GetR8(unsigned int)const  __ptr64
-?GetR8@CAllocStorageVariant@@QEBANI@Z
-; public: int __cdecl CMachineAdmin::GetSZParam(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
-?GetSZParam@CMachineAdmin@@QEAAHPEBGPEAGK@Z
-; long __cdecl GetScodeError(class CException & __ptr64)
-?GetScodeError@@YAJAEAVCException@@@Z
-; int __cdecl GetSecret(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64)
-?GetSecret@@YAHPEBG0PEAPEAGPEAK@Z
-; public: unsigned long __cdecl CDriveInfo::GetSectorSize(void) __ptr64
-?GetSectorSize@CDriveInfo@@QEAAKXZ
-; public: void __cdecl CCatState::GetSortProp(unsigned int,unsigned short const * __ptr64 * __ptr64,enum SORTDIR * __ptr64)const  __ptr64
-?GetSortProp@CCatState@@QEBAXIPEAPEBGPEAW4SORTDIR@@@Z
-; void __cdecl GetStackTrace(char * __ptr64,unsigned long)
-?GetStackTrace@@YAXPEADK@Z
-; public: unsigned char const * __ptr64 __cdecl CGenericCiProxy::GetStartupData(struct _GUID & __ptr64,unsigned long & __ptr64) __ptr64
-?GetStartupData@CGenericCiProxy@@QEAAPEBEAEAU_GUID@@AEAK@Z
-; public: class PStorage & __ptr64 __cdecl CPropStoreManager::GetStorage(unsigned long) __ptr64
-?GetStorage@CPropStoreManager@@QEAAAEAVPStorage@@K@Z
-; public: unsigned short * __ptr64 __cdecl CKey::GetStr(void)const  __ptr64
-?GetStr@CKey@@QEBAPEAGXZ
-; public: unsigned short * __ptr64 __cdecl CKeyBuf::GetStr(void)const  __ptr64
-?GetStr@CKeyBuf@@QEBAPEAGXZ
-; public: virtual char * __ptr64 __cdecl CMemDeSerStream::GetString(void) __ptr64
-?GetString@CMemDeSerStream@@UEAAPEADXZ
-; class CDbRestriction * __ptr64 __cdecl GetStringDbRestriction(unsigned short const * __ptr64,unsigned long,struct IColumnMapper * __ptr64,unsigned long)
-?GetStringDbRestriction@@YAPEAVCDbRestriction@@PEBGKPEAUIColumnMapper@@K@Z
-; void __cdecl GetStringFromLCID(unsigned long,unsigned short * __ptr64)
-?GetStringFromLCID@@YAXKPEAG@Z
-; public: unsigned long __cdecl CPropStoreManager::GetTotalSizeInKB(void) __ptr64
-?GetTotalSizeInKB@CPropStoreManager@@QEAAKXZ
-; public: unsigned long __cdecl CPropertyStore::GetTotalSizeInKB(void) __ptr64
-?GetTotalSizeInKB@CPropertyStore@@QEAAKXZ
-; public: virtual unsigned long __cdecl CMemDeSerStream::GetULong(void) __ptr64
-?GetULong@CMemDeSerStream@@UEAAKXZ
-; public: virtual unsigned short __cdecl CMemDeSerStream::GetUShort(void) __ptr64
-?GetUShort@CMemDeSerStream@@UEAAGXZ
-; public: void __cdecl CIndexTable::GetUserHdrInfo(unsigned int & __ptr64,int & __ptr64) __ptr64
-?GetUserHdrInfo@CIndexTable@@QEAAXAEAIAEAH@Z
-; public: unsigned long __cdecl CMetaDataMgr::GetVPathAccess(unsigned short const * __ptr64) __ptr64
-?GetVPathAccess@CMetaDataMgr@@QEAAKPEBG@Z
-; public: unsigned long __cdecl CMetaDataMgr::GetVPathAuthorization(unsigned short const * __ptr64) __ptr64
-?GetVPathAuthorization@CMetaDataMgr@@QEAAKPEBG@Z
-; public: unsigned long __cdecl CMetaDataMgr::GetVPathSSLAccess(unsigned short const * __ptr64) __ptr64
-?GetVPathSSLAccess@CMetaDataMgr@@QEAAKPEBG@Z
-; public: unsigned short const * __ptr64 __cdecl CDriveInfo::GetVolumeName(int) __ptr64
-?GetVolumeName@CDriveInfo@@QEAAPEBGH@Z
-; public: virtual void __cdecl CMemDeSerStream::GetWChar(unsigned short * __ptr64,unsigned long) __ptr64
-?GetWChar@CMemDeSerStream@@UEAAXPEAGK@Z
-; public: virtual unsigned short * __ptr64 __cdecl CMemDeSerStream::GetWString(void) __ptr64
-?GetWString@CMemDeSerStream@@UEAAPEAGXZ
-; public: long __cdecl CDbCmdTreeNode::GetWeight(void)const  __ptr64
-?GetWeight@CDbCmdTreeNode@@QEBAJXZ
-; public: void __cdecl CDynStream::Grow(class PStorage & __ptr64,unsigned long) __ptr64
-?Grow@CDynStream@@QEAAXAEAVPStorage@@K@Z
-; private: void __cdecl CVirtualString::GrowBuffer(unsigned long) __ptr64
-?GrowBuffer@CVirtualString@@AEAAXK@Z
-; void __cdecl HTMLEscapeW(unsigned short const * __ptr64,class CVirtualString & __ptr64,unsigned long)
-?HTMLEscapeW@@YAXPEBGAEAVCVirtualString@@K@Z
-; private: void __cdecl CImpersonateClient::Impersonate(void) __ptr64
-?Impersonate@CImpersonateClient@@AEAAXXZ
-; public: void __cdecl CFileMapView::Init(void) __ptr64
-?Init@CFileMapView@@QEAAXXZ
-; public: void __cdecl CMmStreamConsecBuf::Init(class PMmStream * __ptr64) __ptr64
-?Init@CMmStreamConsecBuf@@QEAAXPEAVPMmStream@@@Z
-; public: int __cdecl CPidLookupTable::Init(class PRcovStorageObj * __ptr64) __ptr64
-?Init@CPidLookupTable@@QEAAHPEAVPRcovStorageObj@@@Z
-; public: void __cdecl CRcovStorageHdr::Init(unsigned long) __ptr64
-?Init@CRcovStorageHdr@@QEAAXK@Z
-; public: void __cdecl CRegChangeEvent::Init(void) __ptr64
-?Init@CRegChangeEvent@@QEAAXXZ
-; public: int __cdecl CSdidLookupTable::Init(class CiStorage * __ptr64) __ptr64
-?Init@CSdidLookupTable@@QEAAHPEAVCiStorage@@@Z
-; public: virtual void __cdecl CPropertyList::InitIterator(void) __ptr64
-?InitIterator@CPropertyList@@UEAAXXZ
-; public: void __cdecl CImpersonationTokenCache::Initialize(unsigned short const * __ptr64,int,int,int,unsigned long,unsigned long,unsigned long) __ptr64
-?Initialize@CImpersonationTokenCache@@QEAAXPEBGHHHKKK@Z
-; public: void __cdecl CDynStream::InitializeForRead(void) __ptr64
-?InitializeForRead@CDynStream@@QEAAXXZ
-; public: void __cdecl CDynStream::InitializeForWrite(unsigned long) __ptr64
-?InitializeForWrite@CDynStream@@QEAAXK@Z
-; protected: void __cdecl CDbCmdTreeNode::InsertChild(class CDbCmdTreeNode * __ptr64) __ptr64
-?InsertChild@CDbCmdTreeNode@@IEAAXPEAV1@@Z
-; public: int __cdecl CMachineAdmin::IsCIEnabled(void) __ptr64
-?IsCIEnabled@CMachineAdmin@@QEAAHXZ
-; public: int __cdecl CMachineAdmin::IsCIPaused(void) __ptr64
-?IsCIPaused@CMachineAdmin@@QEAAHXZ
-; public: int __cdecl CMachineAdmin::IsCIStarted(void) __ptr64
-?IsCIStarted@CMachineAdmin@@QEAAHXZ
-; public: int __cdecl CMachineAdmin::IsCIStopped(void) __ptr64
-?IsCIStopped@CMachineAdmin@@QEAAHXZ
-; public: int __cdecl CCatalogAdmin::IsCatalogInactive(void) __ptr64
-?IsCatalogInactive@CCatalogAdmin@@QEAAHXZ
-; int __cdecl IsDirectoryWritable(unsigned short const * __ptr64)
-?IsDirectoryWritable@@YAHPEBG@Z
-; public: static int __cdecl CMetaDataMgr::IsIISAdminUp(int & __ptr64)
-?IsIISAdminUp@CMetaDataMgr@@SAHAEAH@Z
-; public: static int __cdecl CImpersonateSystem::IsImpersonated(void)
-?IsImpersonated@CImpersonateSystem@@SAHXZ
-; public: int __cdecl CRestriction::IsLeaf(void)const  __ptr64
-?IsLeaf@CRestriction@@QEBAHXZ
-; int __cdecl IsNullPointerVariant(struct tagPROPVARIANT * __ptr64)
-?IsNullPointerVariant@@YAHPEAUtagPROPVARIANT@@@Z
-; public: int __cdecl CCatalogAdmin::IsPaused(void) __ptr64
-?IsPaused@CCatalogAdmin@@QEAAHXZ
-; public: static int __cdecl CImpersonateSystem::IsRunningAsSystem(void)
-?IsRunningAsSystem@CImpersonateSystem@@SAHXZ
-; public: int __cdecl CDriveInfo::IsSameDrive(unsigned short const * __ptr64) __ptr64
-?IsSameDrive@CDriveInfo@@QEAAHPEBG@Z
-; long __cdecl IsScopeValid(unsigned short const * __ptr64,unsigned int,int)
-?IsScopeValid@@YAJPEBGIH@Z
-; public: int __cdecl CCatalogAdmin::IsStarted(void) __ptr64
-?IsStarted@CCatalogAdmin@@QEAAHXZ
-; public: int __cdecl CCatalogAdmin::IsStopped(void) __ptr64
-?IsStopped@CCatalogAdmin@@QEAAHXZ
-; public: int __cdecl CAllocStorageVariant::IsValid(void)const  __ptr64
-?IsValid@CAllocStorageVariant@@QEBAHXZ
-; public: int __cdecl CNodeRestriction::IsValid(void)const  __ptr64
-?IsValid@CNodeRestriction@@QEBAHXZ
-; public: int __cdecl COccRestriction::IsValid(void)const  __ptr64
-?IsValid@COccRestriction@@QEBAHXZ
-; public: int __cdecl CRestriction::IsValid(void)const  __ptr64
-?IsValid@CRestriction@@QEBAHXZ
-; public: int __cdecl CFilterDaemon::IsWaitingForDocument(void) __ptr64
-?IsWaitingForDocument@CFilterDaemon@@QEAAHXZ
-; public: int __cdecl CDriveInfo::IsWriteProtected(void) __ptr64
-?IsWriteProtected@CDriveInfo@@QEAAHXZ
-; public: void __cdecl CLocalGlobalPropertyList::Load(unsigned short const * __ptr64 const) __ptr64
-?Load@CLocalGlobalPropertyList@@QEAAXQEBG@Z
-; unsigned long __cdecl LocaleToCodepage(unsigned long)
-?LocaleToCodepage@@YAKK@Z
-; private: unsigned long __cdecl CPropertyStore::LokNewWorkId(unsigned long,int,int) __ptr64
-?LokNewWorkId@CPropertyStore@@AEAAKKHH@Z
-; public: int __cdecl CCatStateInfo::LokUpdate(void) __ptr64
-?LokUpdate@CCatStateInfo@@QEAAHXZ
-; public: void __cdecl CPropStoreManager::LongInit(int & __ptr64,unsigned long & __ptr64,void (__cdecl*)(unsigned long,int,void const * __ptr64),void const * __ptr64) __ptr64
-?LongInit@CPropStoreManager@@QEAAXAEAHAEAKP6AXKHPEBX@Z2@Z
-; private: unsigned int __cdecl CPropStoreInfo::Lookup(unsigned long) __ptr64
-?Lookup@CPropStoreInfo@@AEAAIK@Z
-; public: unsigned long __cdecl CSdidLookupTable::LookupSDID(void * __ptr64,unsigned long) __ptr64
-?LookupSDID@CSdidLookupTable@@QEAAKPEAXK@Z
-; public: void __cdecl CPhysStorage::MakeBackupCopy(class CPhysStorage & __ptr64,class PSaveProgressTracker & __ptr64) __ptr64
-?MakeBackupCopy@CPhysStorage@@QEAAXAEAV1@AEAVPSaveProgressTracker@@@Z
-; public: void __cdecl CPidLookupTable::MakeBackupCopy(class PRcovStorageObj & __ptr64,class PSaveProgressTracker & __ptr64) __ptr64
-?MakeBackupCopy@CPidLookupTable@@QEAAXAEAVPRcovStorageObj@@AEAVPSaveProgressTracker@@@Z
-; public: void __cdecl CPropStoreManager::MakeBackupCopy(struct IProgressNotify * __ptr64,int & __ptr64,class CiStorage & __ptr64,struct ICiEnumWorkids * __ptr64,struct IEnumString * __ptr64 * __ptr64) __ptr64
-?MakeBackupCopy@CPropStoreManager@@QEAAXPEAUIProgressNotify@@AEAHAEAVCiStorage@@PEAUICiEnumWorkids@@PEAPEAUIEnumString@@@Z
-; long __cdecl MakeICommand(struct IUnknown * __ptr64 * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,struct IUnknown * __ptr64)
-?MakeICommand@@YAJPEAPEAUIUnknown@@PEBG1PEAU1@@Z
-; long __cdecl MakeISearch(struct ISearchQueryHits * __ptr64 * __ptr64,class CDbRestriction * __ptr64,unsigned short const * __ptr64)
-?MakeISearch@@YAJPEAPEAUISearchQueryHits@@PEAVCDbRestriction@@PEBG@Z
-; long __cdecl MakeLocalICommand(struct IUnknown * __ptr64 * __ptr64,struct ICiCDocStore * __ptr64,struct IUnknown * __ptr64)
-?MakeLocalICommand@@YAJPEAPEAUIUnknown@@PEAUICiCDocStore@@PEAU1@@Z
-; long __cdecl MakeMetadataICommand(struct IUnknown * __ptr64 * __ptr64,enum CiMetaData,unsigned short const * __ptr64,unsigned short const * __ptr64,struct IUnknown * __ptr64)
-?MakeMetadataICommand@@YAJPEAPEAUIUnknown@@W4CiMetaData@@PEBG2PEAU1@@Z
-; public: void __cdecl CFullPath::MakePath(unsigned short const * __ptr64) __ptr64
-?MakePath@CFullPath@@QEAAXPEBG@Z
-; public: void __cdecl CFullPath::MakePath(unsigned short const * __ptr64,unsigned int) __ptr64
-?MakePath@CFullPath@@QEAAXPEBGI@Z
-; private: void __cdecl CImpersonateSystem::MakePrivileged(void) __ptr64
-?MakePrivileged@CImpersonateSystem@@AEAAXXZ
-; public: void __cdecl CMmStreamConsecBuf::Map(unsigned long) __ptr64
-?Map@CMmStreamConsecBuf@@QEAAXK@Z
-; public: int __cdecl CDynStream::MarkDirty(void) __ptr64
-?MarkDirty@CDynStream@@QEAAHXZ
-; public: void __cdecl CBaseStorageVariant::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CBaseStorageVariant@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CContentRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CContentRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CDbCmdTreeNode::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CDbCmdTreeNode@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CFullPropSpec::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CFullPropSpec@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CNatLanguageRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CNatLanguageRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CNodeRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CNodeRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CNotRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CNotRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CPropNameArray::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CPropNameArray@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CPropertyRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CPropertyRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CVectorRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
-?Marshall@CVectorRestriction@@QEBAXAEAVPSerStream@@@Z
-; public: int __cdecl CBufferCache::MinPageInUse(unsigned long & __ptr64) __ptr64
-?MinPageInUse@CBufferCache@@QEAAHAEAK@Z
-; public: int __cdecl CPhysStorage::MinPageInUse(unsigned long & __ptr64) __ptr64
-?MinPageInUse@CPhysStorage@@QEAAHAEAK@Z
-; unsigned long __cdecl MultiByteToXArrayWideChar(unsigned char const * __ptr64,unsigned long,unsigned int,class XArray<unsigned short> & __ptr64)
-?MultiByteToXArrayWideChar@@YAKPEBEKIAEAV?$XArray@G@@@Z
-; unsigned __int64 __cdecl My_wcstoui64(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,int)
-?My_wcstoui64@@YA_KPEBGPEAPEAGH@Z
-; public: unsigned long __cdecl CPidRemapper::NameToReal(class CFullPropSpec const * __ptr64) __ptr64
-?NameToReal@CPidRemapper@@QEAAKPEBVCFullPropSpec@@@Z
-; public: static struct IStemmer * __ptr64 __cdecl CCiOle::NewStemmer(struct _GUID const & __ptr64)
-?NewStemmer@CCiOle@@SAPEAUIStemmer@@AEBU_GUID@@@Z
-; public: static struct IWordBreaker * __ptr64 __cdecl CCiOle::NewWordBreaker(struct _GUID const & __ptr64)
-?NewWordBreaker@CCiOle@@SAPEAUIWordBreaker@@AEBU_GUID@@@Z
-; public: int __cdecl CCatalogEnum::Next(void) __ptr64
-?Next@CCatalogEnum@@QEAAHXZ
-; public: virtual long __cdecl CEnumString::Next(unsigned long,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
-?Next@CEnumString@@UEAAJKPEAPEAGPEAK@Z
-; public: virtual long __cdecl CEnumWorkid::Next(unsigned long,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
-?Next@CEnumWorkid@@UEAAJKPEAK0@Z
-; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Next(void) __ptr64
-?Next@CPropertyList@@UEAAPEBVCPropEntry@@XZ
-; public: int __cdecl CScopeEnum::Next(void) __ptr64
-?Next@CScopeEnum@@QEAAHXZ
-; public: unsigned long __cdecl CPropertyStoreWids::NextWorkId(void) __ptr64
-?NextWorkId@CPropertyStoreWids@@QEAAKXZ
-; public: unsigned int __cdecl CCatState::NumberOfColumns(void)const  __ptr64
-?NumberOfColumns@CCatState@@QEBAIXZ
-; public: unsigned int __cdecl CCatState::NumberOfSortProps(void)const  __ptr64
-?NumberOfSortProps@CCatState@@QEBAIXZ
-; public: void __cdecl CMmStream::Open(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long,int) __ptr64
-?Open@CMmStream@@QEAAXPEBGKKKKH@Z
-; public: int __cdecl COLEPropManager::Open(class CFunnyPath const & __ptr64) __ptr64
-?Open@COLEPropManager@@QEAAHAEBVCFunnyPath@@@Z
-; public: void __cdecl CMmStream::OpenExclusive(unsigned short * __ptr64,int) __ptr64
-?OpenExclusive@CMmStream@@QEAAXPEAGH@Z
-; struct _iobuf * __ptr64 __cdecl OpenFileFromPath(unsigned short const * __ptr64)
-?OpenFileFromPath@@YAPEAU_iobuf@@PEBG@Z
-; public: class CCompositePropRecord * __ptr64 __cdecl CPropStoreManager::OpenRecord(unsigned long,unsigned char * __ptr64) __ptr64
-?OpenRecord@CPropStoreManager@@QEAAPEAVCCompositePropRecord@@KPEAE@Z
-; public: class CCompositePropRecordForWrites * __ptr64 __cdecl CPropStoreManager::OpenRecordForWrites(unsigned long,unsigned char * __ptr64) __ptr64
-?OpenRecordForWrites@CPropStoreManager@@QEAAPEAVCCompositePropRecordForWrites@@KPEAE@Z
-; long __cdecl ParseCatalogURL(unsigned short const * __ptr64,class XPtrST<unsigned short> & __ptr64,class XPtrST<unsigned short> & __ptr64)
-?ParseCatalogURL@@YAJPEBGAEAV?$XPtrST@G@@1@Z
-; public: class CRestriction * __ptr64 __cdecl CParseCommandTree::ParseExpression(class CDbCmdTreeNode * __ptr64) __ptr64
-?ParseExpression@CParseCommandTree@@QEAAPEAVCRestriction@@PEAVCDbCmdTreeNode@@@Z
-; public: static void __cdecl CPropertyList::ParseOneLine(class CQueryScanner & __ptr64,int,class XPtr<class CPropEntry> & __ptr64)
-?ParseOneLine@CPropertyList@@SAXAEAVCQueryScanner@@HAEAV?$XPtr@VCPropEntry@@@@@Z
-; public: class CDbRestriction * __ptr64 __cdecl CQueryParser::ParseQueryPhrase(void) __ptr64
-?ParseQueryPhrase@CQueryParser@@QEAAPEAVCDbRestriction@@XZ
-; class CDbColumns * __ptr64 __cdecl ParseStringColumns(unsigned short const * __ptr64,struct IColumnMapper * __ptr64,unsigned long,class PVariableSet * __ptr64,class CDynArray<unsigned short> * __ptr64)
-?ParseStringColumns@@YAPEAVCDbColumns@@PEBGPEAUIColumnMapper@@KPEAVPVariableSet@@PEAV?$CDynArray@G@@@Z
-; public: int __cdecl CCatalogAdmin::Pause(void) __ptr64
-?Pause@CCatalogAdmin@@QEAAHXZ
-; public: int __cdecl CMachineAdmin::PauseCI(void) __ptr64
-?PauseCI@CMachineAdmin@@QEAAHXZ
-; public: virtual unsigned long __cdecl CMemDeSerStream::PeekULong(void) __ptr64
-?PeekULong@CMemDeSerStream@@UEAAKXZ
-; public: unsigned long __cdecl CPidMapper::PidToRealPid(unsigned long) __ptr64
-?PidToRealPid@CPidMapper@@QEAAKK@Z
-; public: unsigned long __cdecl CStandardPropMapper::PropertyToPropId(class CFullPropSpec const & __ptr64,int) __ptr64
-?PropertyToPropId@CStandardPropMapper@@QEAAKAEBVCFullPropSpec@@H@Z
-; public: virtual long __cdecl CFwPropertyMapper::PropertyToPropid(struct tagFULLPROPSPEC const * __ptr64,int,unsigned long * __ptr64) __ptr64
-?PropertyToPropid@CFwPropertyMapper@@UEAAJPEBUtagFULLPROPSPEC@@HPEAK@Z
-; public: void __cdecl CValueNormalizer::PutMaxValue(unsigned long,unsigned long & __ptr64,enum VARENUM) __ptr64
-?PutMaxValue@CValueNormalizer@@QEAAXKAEAKW4VARENUM@@@Z
-; public: void __cdecl CValueNormalizer::PutMinValue(unsigned long,unsigned long & __ptr64,enum VARENUM) __ptr64
-?PutMinValue@CValueNormalizer@@QEAAXKAEAKW4VARENUM@@@Z
-; public: void __cdecl CValueNormalizer::PutValue(unsigned long,unsigned long & __ptr64,class CStorageVariant const & __ptr64) __ptr64
-?PutValue@CValueNormalizer@@QEAAXKAEAKAEBVCStorageVariant@@@Z
-; void __cdecl PutWString(class PSerStream & __ptr64,unsigned short const * __ptr64)
-?PutWString@@YAXAEAVPSerStream@@PEBG@Z
-; private: class CDbRestriction * __ptr64 __cdecl CQueryParser::Query(class CDbNodeRestriction * __ptr64) __ptr64
-?Query@CQueryParser@@AEAAPEAVCDbRestriction@@PEAVCDbNodeRestriction@@@Z
-; public: class CCatalogAdmin * __ptr64 __cdecl CCatalogEnum::QueryCatalogAdmin(void) __ptr64
-?QueryCatalogAdmin@CCatalogEnum@@QEAAPEAVCCatalogAdmin@@XZ
-; public: class CCatalogAdmin * __ptr64 __cdecl CMachineAdmin::QueryCatalogAdmin(unsigned short const * __ptr64) __ptr64
-?QueryCatalogAdmin@CMachineAdmin@@QEAAPEAVCCatalogAdmin@@PEBG@Z
-; public: class CCatalogEnum * __ptr64 __cdecl CMachineAdmin::QueryCatalogEnum(void) __ptr64
-?QueryCatalogEnum@CMachineAdmin@@QEAAPEAVCCatalogEnum@@XZ
-; public: virtual long __cdecl CDbProperties::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
-?QueryInterface@CDbProperties@@UEAAJAEBU_GUID@@PEAPEAX@Z
-; public: virtual long __cdecl CEmptyPropertyList::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
-?QueryInterface@CEmptyPropertyList@@UEAAJAEBU_GUID@@PEAPEAX@Z
-; public: virtual long __cdecl CEnumString::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
-?QueryInterface@CEnumString@@UEAAJAEBU_GUID@@PEAPEAX@Z
-; public: virtual long __cdecl CEnumWorkid::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
-?QueryInterface@CEnumWorkid@@UEAAJAEBU_GUID@@PEAPEAX@Z
-; public: virtual long __cdecl CFwPropertyMapper::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
-?QueryInterface@CFwPropertyMapper@@UEAAJAEBU_GUID@@PEAPEAX@Z
-; public: virtual long __cdecl CQueryUnknown::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
-?QueryInterface@CQueryUnknown@@UEAAJAEBU_GUID@@PEAPEAX@Z
-; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryPidLookupTable(unsigned long) __ptr64
-?QueryPidLookupTable@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
-; public: class CScopeAdmin * __ptr64 __cdecl CCatalogAdmin::QueryScopeAdmin(unsigned short const * __ptr64) __ptr64
-?QueryScopeAdmin@CCatalogAdmin@@QEAAPEAVCScopeAdmin@@PEBG@Z
-; public: class CScopeAdmin * __ptr64 __cdecl CScopeEnum::QueryScopeAdmin(void) __ptr64
-?QueryScopeAdmin@CScopeEnum@@QEAAPEAVCScopeAdmin@@XZ
-; public: class CScopeEnum * __ptr64 __cdecl CCatalogAdmin::QueryScopeEnum(void) __ptr64
-?QueryScopeEnum@CCatalogAdmin@@QEAAPEAVCScopeEnum@@XZ
-; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryScopeList(unsigned long) __ptr64
-?QueryScopeList@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
-; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QuerySdidLookupTable(unsigned long) __ptr64
-?QuerySdidLookupTable@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
-; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryVirtualScopeList(unsigned long) __ptr64
-?QueryVirtualScopeList@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
-; public: void __cdecl CPidRemapper::ReBuild(class CPidMapper const & __ptr64) __ptr64
-?ReBuild@CPidRemapper@@QEAAXAEBVCPidMapper@@@Z
-; public: void __cdecl CQueryUnknown::ReInit(unsigned long,class CRowset * __ptr64 * __ptr64) __ptr64
-?ReInit@CQueryUnknown@@QEAAXKPEAPEAVCRowset@@@Z
-; public: void __cdecl CImpersonationTokenCache::ReInitializeIISScopes(void) __ptr64
-?ReInitializeIISScopes@CImpersonationTokenCache@@QEAAXXZ
-; private: virtual void __cdecl CPhysIndex::ReOpenStream(void) __ptr64
-?ReOpenStream@CPhysIndex@@EEAAXXZ
-; public: unsigned long __cdecl CDynStream::Read(void * __ptr64,unsigned long) __ptr64
-?Read@CDynStream@@QEAAKPEAXK@Z
-; public: unsigned long __cdecl CRcovStrmTrans::Read(void * __ptr64,unsigned long) __ptr64
-?Read@CRcovStrmTrans@@QEAAKPEAXK@Z
-; public: unsigned long __cdecl CRegAccess::Read(unsigned short const * __ptr64,unsigned long) __ptr64
-?Read@CRegAccess@@QEAAKPEBGK@Z
-; public: unsigned short * __ptr64 __cdecl CRegAccess::Read(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
-?Read@CRegAccess@@QEAAPEAGPEBG0@Z
-; public: int __cdecl CPropStoreManager::ReadPrimaryProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
-?ReadPrimaryProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@@Z
-; public: int __cdecl COLEPropManager::ReadProperty(class CFullPropSpec const & __ptr64,struct tagPROPVARIANT & __ptr64) __ptr64
-?ReadProperty@COLEPropManager@@QEAAHAEBVCFullPropSpec@@AEAUtagPROPVARIANT@@@Z
-; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
-?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KAEAUtagPROPVARIANT@@@Z
-; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned int * __ptr64) __ptr64
-?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KAEAUtagPROPVARIANT@@PEAEPEAI@Z
-; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
-?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KPEAUtagPROPVARIANT@@PEAI@Z
-; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
-?ReadProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@@Z
-; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned int * __ptr64) __ptr64
-?ReadProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@PEAEPEAI@Z
-; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
-?ReadProperty@CPropStoreManager@@QEAAHKKPEAUtagPROPVARIANT@@PEAI@Z
-; public: int __cdecl CPropertyStore::ReadProperty(class CPropRecordNoLock & __ptr64,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
-?ReadProperty@CPropertyStore@@QEAAHAEAVCPropRecordNoLock@@KPEAUtagPROPVARIANT@@PEAI@Z
-; public: int __cdecl CPropertyStore::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
-?ReadProperty@CPropertyStore@@QEAAHKKAEAUtagPROPVARIANT@@@Z
-; public: unsigned char __cdecl CDFA::Recognize(unsigned short const * __ptr64) __ptr64
-?Recognize@CDFA@@QEAAEPEBG@Z
-; public: void __cdecl CCiRegParams::Refresh(struct ICiAdminParams * __ptr64,int) __ptr64
-?Refresh@CCiRegParams@@QEAAXPEAUICiAdminParams@@H@Z
-; public: void __cdecl CDefColumnRegEntry::Refresh(int) __ptr64
-?Refresh@CDefColumnRegEntry@@QEAAXH@Z
-; public: void __cdecl CWorkQueue::RefreshParams(unsigned long,unsigned long) __ptr64
-?RefreshParams@CWorkQueue@@QEAAXKK@Z
-; public: virtual unsigned long __cdecl CDbProperties::Release(void) __ptr64
-?Release@CDbProperties@@UEAAKXZ
-; public: virtual unsigned long __cdecl CEmptyPropertyList::Release(void) __ptr64
-?Release@CEmptyPropertyList@@UEAAKXZ
-; public: virtual unsigned long __cdecl CEnumString::Release(void) __ptr64
-?Release@CEnumString@@UEAAKXZ
-; public: virtual unsigned long __cdecl CEnumWorkid::Release(void) __ptr64
-?Release@CEnumWorkid@@UEAAKXZ
-; public: virtual unsigned long __cdecl CFwPropertyMapper::Release(void) __ptr64
-?Release@CFwPropertyMapper@@UEAAKXZ
-; public: void __cdecl CImpersonateRemoteAccess::Release(void) __ptr64
-?Release@CImpersonateRemoteAccess@@QEAAXXZ
-; public: virtual unsigned long __cdecl CQueryUnknown::Release(void) __ptr64
-?Release@CQueryUnknown@@UEAAKXZ
-; public: void __cdecl CWorkQueue::Release(class CWorkThread * __ptr64) __ptr64
-?Release@CWorkQueue@@QEAAXPEAVCWorkThread@@@Z
-; private: void __cdecl CPropertyStore::ReleaseRead(class CReadWriteLockRecord & __ptr64) __ptr64
-?ReleaseRead@CPropertyStore@@AEAAXAEAVCReadWriteLockRecord@@@Z
-; public: void __cdecl CWorkQueue::ReleaseWorkThreads(void) __ptr64
-?ReleaseWorkThreads@CWorkQueue@@QEAAXXZ
-; public: void __cdecl CColumns::Remove(unsigned int) __ptr64
-?Remove@CColumns@@QEAAXI@Z
-; public: void __cdecl CDbSortSet::Remove(unsigned int) __ptr64
-?Remove@CDbSortSet@@QEAAXI@Z
-; public: void __cdecl CSort::Remove(unsigned int) __ptr64
-?Remove@CSort@@QEAAXI@Z
-; private: void __cdecl CWorkQueue::Remove(class CWorkThread & __ptr64) __ptr64
-?Remove@CWorkQueue@@AEAAXAEAVCWorkThread@@@Z
-; public: void __cdecl CWorkQueue::Remove(class PWorkItem * __ptr64) __ptr64
-?Remove@CWorkQueue@@QEAAXPEAVPWorkItem@@@Z
-; public: void __cdecl CMachineAdmin::RemoveCatalog(unsigned short const * __ptr64,int) __ptr64
-?RemoveCatalog@CMachineAdmin@@QEAAXPEBGH@Z
-; public: void __cdecl CMachineAdmin::RemoveCatalogFiles(unsigned short const * __ptr64) __ptr64
-?RemoveCatalogFiles@CMachineAdmin@@QEAAXPEBG@Z
-; public: class CRestriction * __ptr64 __cdecl CNodeRestriction::RemoveChild(unsigned int) __ptr64
-?RemoveChild@CNodeRestriction@@QEAAPEAVCRestriction@@I@Z
-; protected: class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::RemoveFirstChild(void) __ptr64
-?RemoveFirstChild@CDbCmdTreeNode@@IEAAPEAV1@XZ
-; public: void __cdecl CCatalogAdmin::RemoveScope(unsigned short const * __ptr64) __ptr64
-?RemoveScope@CCatalogAdmin@@QEAAXPEBG@Z
-; public: void __cdecl CPhysStorage::Reopen(int) __ptr64
-?Reopen@CPhysStorage@@QEAAXH@Z
-; public: void __cdecl CEventLog::ReportEventW(class CEventItem & __ptr64) __ptr64
-?ReportEventW@CEventLog@@QEAAXAEAVCEventItem@@@Z
-; public: void __cdecl CFwEventItem::ReportEventW(struct ICiCAdviseStatus & __ptr64) __ptr64
-?ReportEventW@CFwEventItem@@QEAAXAEAUICiCAdviseStatus@@@Z
-; public: int __cdecl CPhysStorage::RequiresFlush(unsigned long) __ptr64
-?RequiresFlush@CPhysStorage@@QEAAHK@Z
-; public: void __cdecl CRegChangeEvent::Reset(void) __ptr64
-?Reset@CRegChangeEvent@@QEAAXXZ
-; public: void __cdecl CQueryScanner::ResetBuffer(unsigned short const * __ptr64) __ptr64
-?ResetBuffer@CQueryScanner@@QEAAXPEBG@Z
-; protected: void __cdecl CAllocStorageVariant::ResetType(class PMemoryAllocator & __ptr64) __ptr64
-?ResetType@CAllocStorageVariant@@IEAAXAEAVPMemoryAllocator@@@Z
-; public: void __cdecl CProcess::Resume(void) __ptr64
-?Resume@CProcess@@QEAAXXZ
-; public: void __cdecl CPhysStorage::ReturnBuffer(unsigned long,int,int) __ptr64
-?ReturnBuffer@CPhysStorage@@QEAAXKHH@Z
-; public: void __cdecl CMmStreamConsecBuf::Rewind(void) __ptr64
-?Rewind@CMmStreamConsecBuf@@QEAAXXZ
-; unsigned long __cdecl SaComputeSize(unsigned short,struct tagSAFEARRAY & __ptr64)
-?SaComputeSize@@YAKGAEAUtagSAFEARRAY@@@Z
-; int __cdecl SaCreateAndCopy(class PMemoryAllocator & __ptr64,struct tagSAFEARRAY * __ptr64,struct tagSAFEARRAY * __ptr64 * __ptr64)
-?SaCreateAndCopy@@YAHAEAVPMemoryAllocator@@PEAUtagSAFEARRAY@@PEAPEAU2@@Z
-; int __cdecl SaCreateData(class PVarAllocator & __ptr64,unsigned short,struct tagSAFEARRAY & __ptr64,struct tagSAFEARRAY & __ptr64,int)
-?SaCreateData@@YAHAEAVPVarAllocator@@GAEAUtagSAFEARRAY@@1H@Z
-; public: int __cdecl CRcovStrmTrans::Seek(unsigned long) __ptr64
-?Seek@CRcovStrmTrans@@QEAAHK@Z
-; public: void __cdecl CDbQueryResults::Serialize(class PSerStream & __ptr64)const  __ptr64
-?Serialize@CDbQueryResults@@QEBAXAEAVPSerStream@@@Z
-; public: void __cdecl CPidRemapper::Set(class XArray<unsigned long> & __ptr64) __ptr64
-?Set@CPidRemapper@@QEAAXAEAV?$XArray@K@@@Z
-; public: void __cdecl CScopeAdmin::SetAlias(unsigned short const * __ptr64) __ptr64
-?SetAlias@CScopeAdmin@@QEAAXPEBG@Z
-; public: void __cdecl CStorageVariant::SetBOOL(short,unsigned int) __ptr64
-?SetBOOL@CStorageVariant@@QEAAXFI@Z
-; public: void __cdecl CAllocStorageVariant::SetBSTR(unsigned short * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
-?SetBSTR@CAllocStorageVariant@@QEAAXPEAGAEAVPMemoryAllocator@@@Z
-; public: void __cdecl CStorageVariant::SetBSTR(unsigned short * __ptr64,unsigned int) __ptr64
-?SetBSTR@CStorageVariant@@QEAAXPEAGI@Z
-; public: void __cdecl CPropStoreManager::SetBackupSize(unsigned long,unsigned long) __ptr64
-?SetBackupSize@CPropStoreManager@@QEAAXKK@Z
-; public: void __cdecl CCatState::SetCD(unsigned short const * __ptr64) __ptr64
-?SetCD@CCatState@@QEAAXPEBG@Z
-; public: void __cdecl CStorageVariant::SetCLSID(struct _GUID const * __ptr64) __ptr64
-?SetCLSID@CStorageVariant@@QEAAXPEBU_GUID@@@Z
-; public: void __cdecl CStorageVariant::SetCLSID(struct _GUID,unsigned int) __ptr64
-?SetCLSID@CStorageVariant@@QEAAXU_GUID@@I@Z
-; public: void __cdecl CStorageVariant::SetCY(union tagCY,unsigned int) __ptr64
-?SetCY@CStorageVariant@@QEAAXTtagCY@@I@Z
-; public: void __cdecl CCatState::SetCatalog(unsigned short const * __ptr64) __ptr64
-?SetCatalog@CCatState@@QEAAXPEBG@Z
-; public: void __cdecl CCatState::SetColumn(unsigned short const * __ptr64,unsigned int) __ptr64
-?SetColumn@CCatState@@QEAAXPEBGI@Z
-; private: void __cdecl CQueryParser::SetCurrentProperty(unsigned short const * __ptr64,enum PropertyType) __ptr64
-?SetCurrentProperty@CQueryParser@@AEAAXPEBGW4PropertyType@@@Z
-; public: void __cdecl CStorageVariant::SetDATE(double,unsigned int) __ptr64
-?SetDATE@CStorageVariant@@QEAAXNI@Z
-; public: void __cdecl CCatalogAdmin::SetDWORDParam(unsigned short const * __ptr64,unsigned long) __ptr64
-?SetDWORDParam@CCatalogAdmin@@QEAAXPEBGK@Z
-; public: void __cdecl CMachineAdmin::SetDWORDParam(unsigned short const * __ptr64,unsigned long) __ptr64
-?SetDWORDParam@CMachineAdmin@@QEAAXPEBGK@Z
-; public: void __cdecl CCatState::SetDefaultProperty(unsigned short const * __ptr64) __ptr64
-?SetDefaultProperty@CCatState@@QEAAXPEBG@Z
-; public: void __cdecl CScopeAdmin::SetExclude(int) __ptr64
-?SetExclude@CScopeAdmin@@QEAAXH@Z
-; public: void __cdecl CStorageVariant::SetFILETIME(struct _FILETIME,unsigned int) __ptr64
-?SetFILETIME@CStorageVariant@@QEAAXU_FILETIME@@I@Z
-; public: void __cdecl CStorageVariant::SetI2(short,unsigned int) __ptr64
-?SetI2@CStorageVariant@@QEAAXFI@Z
-; public: void __cdecl CStorageVariant::SetI4(long,unsigned int) __ptr64
-?SetI4@CStorageVariant@@QEAAXJI@Z
-; public: void __cdecl CStorageVariant::SetI8(union _LARGE_INTEGER,unsigned int) __ptr64
-?SetI8@CStorageVariant@@QEAAXT_LARGE_INTEGER@@I@Z
-; public: void __cdecl CStorageVariant::SetLPSTR(char const * __ptr64,unsigned int) __ptr64
-?SetLPSTR@CStorageVariant@@QEAAXPEBDI@Z
-; public: void __cdecl CStorageVariant::SetLPWSTR(unsigned short const * __ptr64,unsigned int) __ptr64
-?SetLPWSTR@CStorageVariant@@QEAAXPEBGI@Z
-; public: void __cdecl CCatState::SetLocale(unsigned short const * __ptr64) __ptr64
-?SetLocale@CCatState@@QEAAXPEBG@Z
-; public: void __cdecl CScopeAdmin::SetLogonInfo(unsigned short const * __ptr64,unsigned short const * __ptr64,class CCatalogAdmin & __ptr64) __ptr64
-?SetLogonInfo@CScopeAdmin@@QEAAXPEBG0AEAVCCatalogAdmin@@@Z
-; public: void __cdecl CPropStoreManager::SetMappedCacheSize(unsigned long,unsigned long) __ptr64
-?SetMappedCacheSize@CPropStoreManager@@QEAAXKK@Z
-; public: void __cdecl CCatState::SetNumberOfColumns(unsigned int) __ptr64
-?SetNumberOfColumns@CCatState@@QEAAXI@Z
-; public: void __cdecl CCatState::SetNumberOfSortProps(unsigned int) __ptr64
-?SetNumberOfSortProps@CCatState@@QEAAXI@Z
-; public: void __cdecl CScopeAdmin::SetPath(unsigned short const * __ptr64) __ptr64
-?SetPath@CScopeAdmin@@QEAAXPEBG@Z
-; public: void __cdecl CContentRestriction::SetPhrase(unsigned short const * __ptr64) __ptr64
-?SetPhrase@CContentRestriction@@QEAAXPEBG@Z
-; public: void __cdecl CNatLanguageRestriction::SetPhrase(unsigned short const * __ptr64) __ptr64
-?SetPhrase@CNatLanguageRestriction@@QEAAXPEBG@Z
-; public: void __cdecl CGenericCiProxy::SetPriority(unsigned long,unsigned long) __ptr64
-?SetPriority@CGenericCiProxy@@QEAAXKK@Z
-; public: virtual long __cdecl CDbProperties::SetProperties(unsigned long,struct tagDBPROPSET * __ptr64 const) __ptr64
-?SetProperties@CDbProperties@@UEAAJKQEAUtagDBPROPSET@@@Z
-; public: int __cdecl CDbColId::SetProperty(unsigned short const * __ptr64) __ptr64
-?SetProperty@CDbColId@@QEAAHPEBG@Z
-; public: int __cdecl CDbPropBaseRestriction::SetProperty(struct tagDBID const & __ptr64) __ptr64
-?SetProperty@CDbPropBaseRestriction@@QEAAHAEBUtagDBID@@@Z
-; public: int __cdecl CDbPropBaseRestriction::SetProperty(class CDbColumnNode const & __ptr64) __ptr64
-?SetProperty@CDbPropBaseRestriction@@QEAAHAEBVCDbColumnNode@@@Z
-; public: int __cdecl CFullPropSpec::SetProperty(unsigned short const * __ptr64) __ptr64
-?SetProperty@CFullPropSpec@@QEAAHPEBG@Z
-; public: void __cdecl CFullPropSpec::SetProperty(unsigned long) __ptr64
-?SetProperty@CFullPropSpec@@QEAAXK@Z
-; public: void __cdecl CStorageVariant::SetR4(float,unsigned int) __ptr64
-?SetR4@CStorageVariant@@QEAAXMI@Z
-; public: void __cdecl CStorageVariant::SetR8(double,unsigned int) __ptr64
-?SetR8@CStorageVariant@@QEAAXNI@Z
-; public: int __cdecl CDbSelectNode::SetRestriction(class CDbCmdTreeNode * __ptr64) __ptr64
-?SetRestriction@CDbSelectNode@@QEAAHPEAVCDbCmdTreeNode@@@Z
-; public: static void __cdecl CImpersonateSystem::SetRunningAsSystem(void)
-?SetRunningAsSystem@CImpersonateSystem@@SAXXZ
-; public: void __cdecl CMachineAdmin::SetSZParam(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
-?SetSZParam@CMachineAdmin@@QEAAXPEBG0K@Z
-; void __cdecl SetScopeProperties(struct ICommand * __ptr64,unsigned int,unsigned short const * __ptr64 const * __ptr64,unsigned long const * __ptr64,unsigned short const * __ptr64 const * __ptr64,unsigned short const * __ptr64 const * __ptr64)
-?SetScopeProperties@@YAXPEAUICommand@@IPEBQEBGPEBK11@Z
-; long __cdecl SetScopePropertiesNoThrow(struct ICommand * __ptr64,unsigned int,unsigned short const * __ptr64 const * __ptr64,unsigned long const * __ptr64,unsigned short const * __ptr64 const * __ptr64,unsigned short const * __ptr64 const * __ptr64)
-?SetScopePropertiesNoThrow@@YAJPEAUICommand@@IPEBQEBGPEBK11@Z
-; void __cdecl SetSecret(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long)
-?SetSecret@@YAXPEBG00K@Z
-; public: void __cdecl CCatState::SetSortProp(unsigned short const * __ptr64,enum SORTDIR,unsigned int) __ptr64
-?SetSortProp@CCatState@@QEAAXPEBGW4SORTDIR@@I@Z
-; public: void __cdecl CStorageVariant::SetUI1(unsigned char,unsigned int) __ptr64
-?SetUI1@CStorageVariant@@QEAAXEI@Z
-; public: void __cdecl CStorageVariant::SetUI2(unsigned short,unsigned int) __ptr64
-?SetUI2@CStorageVariant@@QEAAXGI@Z
-; public: void __cdecl CStorageVariant::SetUI4(unsigned long,unsigned int) __ptr64
-?SetUI4@CStorageVariant@@QEAAXKI@Z
-; public: void __cdecl CStorageVariant::SetUI8(union _ULARGE_INTEGER,unsigned int) __ptr64
-?SetUI8@CStorageVariant@@QEAAXT_ULARGE_INTEGER@@I@Z
-; public: void __cdecl CPropertyRestriction::SetValue(struct tagBLOB & __ptr64) __ptr64
-?SetValue@CPropertyRestriction@@QEAAXAEAUtagBLOB@@@Z
-; public: void __cdecl CPropertyRestriction::SetValue(unsigned short * __ptr64) __ptr64
-?SetValue@CPropertyRestriction@@QEAAXPEAG@Z
-; public: void __cdecl CPropertyRestriction::SetValue(struct _GUID * __ptr64) __ptr64
-?SetValue@CPropertyRestriction@@QEAAXPEAU_GUID@@@Z
-; public: void __cdecl CDbCmdTreeNode::SetWeight(long) __ptr64
-?SetWeight@CDbCmdTreeNode@@QEAAXJ@Z
-; public: void __cdecl CPropStoreManager::Setup(unsigned long,unsigned long,unsigned long,unsigned __int64,int,unsigned long) __ptr64
-?Setup@CPropStoreManager@@QEAAXKKK_KHK@Z
-; public: void __cdecl CDynStream::Shrink(class PStorage & __ptr64,unsigned long) __ptr64
-?Shrink@CDynStream@@QEAAXAEAVPStorage@@K@Z
-; public: unsigned long __cdecl CPhysStorage::ShrinkFromFront(unsigned long,unsigned long) __ptr64
-?ShrinkFromFront@CPhysStorage@@QEAAKKK@Z
-; public: void __cdecl CPhysStorage::ShrinkToFit(void) __ptr64
-?ShrinkToFit@CPhysStorage@@QEAAXXZ
-; public: static void __cdecl CCiOle::Shutdown(void)
-?Shutdown@CCiOle@@SAXXZ
-; public: void __cdecl CPropStoreManager::Shutdown(void) __ptr64
-?Shutdown@CPropStoreManager@@QEAAXXZ
-; public: void __cdecl CWorkQueue::Shutdown(void) __ptr64
-?Shutdown@CWorkQueue@@QEAAXXZ
-; public: unsigned long __cdecl CDbQueryResults::Size(void) __ptr64
-?Size@CDbQueryResults@@QEAAKXZ
-; public: virtual long __cdecl CEnumString::Skip(unsigned long) __ptr64
-?Skip@CEnumString@@UEAAJK@Z
-; public: virtual long __cdecl CEnumWorkid::Skip(unsigned long) __ptr64
-?Skip@CEnumWorkid@@UEAAJK@Z
-; public: virtual void __cdecl CMemDeSerStream::SkipBlob(unsigned long) __ptr64
-?SkipBlob@CMemDeSerStream@@UEAAXK@Z
-; public: virtual void __cdecl CMemDeSerStream::SkipByte(void) __ptr64
-?SkipByte@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipChar(unsigned long) __ptr64
-?SkipChar@CMemDeSerStream@@UEAAXK@Z
-; public: virtual void __cdecl CMemDeSerStream::SkipDouble(void) __ptr64
-?SkipDouble@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipFloat(void) __ptr64
-?SkipFloat@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipGUID(void) __ptr64
-?SkipGUID@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipLong(void) __ptr64
-?SkipLong@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipULong(void) __ptr64
-?SkipULong@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipUShort(void) __ptr64
-?SkipUShort@CMemDeSerStream@@UEAAXXZ
-; public: virtual void __cdecl CMemDeSerStream::SkipWChar(unsigned long) __ptr64
-?SkipWChar@CMemDeSerStream@@UEAAXK@Z
-; public: int __cdecl CCatalogAdmin::Start(void) __ptr64
-?Start@CCatalogAdmin@@QEAAHXZ
-; public: int __cdecl CMachineAdmin::StartCI(void) __ptr64
-?StartCI@CMachineAdmin@@QEAAHXZ
-; public: int __cdecl CCatalogAdmin::Stop(void) __ptr64
-?Stop@CCatalogAdmin@@QEAAHXZ
-; public: int __cdecl CMachineAdmin::StopCI(void) __ptr64
-?StopCI@CMachineAdmin@@QEAAHXZ
-; public: void __cdecl CFilterDaemon::StopFiltering(void) __ptr64
-?StopFiltering@CFilterDaemon@@QEAAXXZ
-; public: unsigned int __cdecl CKey::StrLen(void)const  __ptr64
-?StrLen@CKey@@QEBAIXZ
-; public: unsigned int __cdecl CKeyBuf::StrLen(void)const  __ptr64
-?StrLen@CKeyBuf@@QEBAIXZ
-; void __cdecl SystemExceptionTranslator(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)
-?SystemExceptionTranslator@@YAXIPEAU_EXCEPTION_POINTERS@@@Z
-; public: unsigned long __cdecl CRestriction::TreeCount(void)const  __ptr64
-?TreeCount@CRestriction@@QEBAKXZ
-; public: void __cdecl CMachineAdmin::TunePerformance(int,unsigned short,unsigned short) __ptr64
-?TunePerformance@CMachineAdmin@@QEAAXHGG@Z
-; void __cdecl URLEscapeW(unsigned short const * __ptr64,class CVirtualString & __ptr64,unsigned long,int)
-?URLEscapeW@@YAXPEBGAEAVCVirtualString@@KH@Z
-; public: int __cdecl CDbProperties::UnMarshall(class PDeSerStream & __ptr64) __ptr64
-?UnMarshall@CDbProperties@@QEAAHAEAVPDeSerStream@@@Z
-; public: static class CRestriction * __ptr64 __cdecl CRestriction::UnMarshall(class PDeSerStream & __ptr64)
-?UnMarshall@CRestriction@@SAPEAV1@AEAVPDeSerStream@@@Z
-; public: static class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::UnMarshallTree(class PDeSerStream & __ptr64)
-?UnMarshallTree@CDbCmdTreeNode@@SAPEAV1@AEAVPDeSerStream@@@Z
-; void __cdecl UnPickle(int,class XPtr<class CColumnSet> & __ptr64,class XPtr<class CRestriction> & __ptr64,class XPtr<class CSortSet> & __ptr64,class XPtr<class CCategorizationSet> & __ptr64,class CRowsetProperties & __ptr64,class XPtr<class CPidMapper> & __ptr64,unsigned char * __ptr64,unsigned long)
-?UnPickle@@YAXHAEAV?$XPtr@VCColumnSet@@@@AEAV?$XPtr@VCRestriction@@@@AEAV?$XPtr@VCSortSet@@@@AEAV?$XPtr@VCCategorizationSet@@@@AEAVCRowsetProperties@@AEAV?$XPtr@VCPidMapper@@@@PEAEK@Z
-; protected: void __cdecl CRcovStrmTrans::Unmap(enum CRcovStorageHdr::DataCopyNum) __ptr64
-?Unmap@CRcovStrmTrans@@IEAAXW4DataCopyNum@CRcovStorageHdr@@@Z
-; unsigned long __cdecl UpdateContentIndex(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,int)
-?UpdateContentIndex@@YAKPEBG00H@Z
-; public: void __cdecl CDiskFreeStatus::UpdateDiskLowInfo(void) __ptr64
-?UpdateDiskLowInfo@CDiskFreeStatus@@QEAAXXZ
-; int __cdecl VT_VARIANT_EQ(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
-?VT_VARIANT_EQ@@YAHAEBUtagPROPVARIANT@@0@Z
-; int __cdecl VT_VARIANT_GE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
-?VT_VARIANT_GE@@YAHAEBUtagPROPVARIANT@@0@Z
-; int __cdecl VT_VARIANT_GT(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
-?VT_VARIANT_GT@@YAHAEBUtagPROPVARIANT@@0@Z
-; int __cdecl VT_VARIANT_LE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
-?VT_VARIANT_LE@@YAHAEBUtagPROPVARIANT@@0@Z
-; int __cdecl VT_VARIANT_LT(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
-?VT_VARIANT_LT@@YAHAEBUtagPROPVARIANT@@0@Z
-; int __cdecl VT_VARIANT_NE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
-?VT_VARIANT_NE@@YAHAEBUtagPROPVARIANT@@0@Z
-; int __cdecl ValidateScopeRestriction(class CRestriction * __ptr64)
-?ValidateScopeRestriction@@YAHPEAVCRestriction@@@Z
-; public: void __cdecl PRcovStorageObj::VerifyConsistency(void) __ptr64
-?VerifyConsistency@PRcovStorageObj@@QEAAXXZ
-; void __cdecl VerifyThreadHasAdminPrivilege(void)
-?VerifyThreadHasAdminPrivilege@@YAXXZ
-; unsigned long __cdecl WideCharToXArrayMultiByte(unsigned short const * __ptr64,unsigned long,unsigned int,class XArray<unsigned char> & __ptr64)
-?WideCharToXArrayMultiByte@@YAKPEBGKIAEAV?$XArray@E@@@Z
-; public: void __cdecl CDynStream::Write(void * __ptr64,unsigned long) __ptr64
-?Write@CDynStream@@QEAAXPEAXK@Z
-; protected: void __cdecl CRcovStrmTrans::Write(void const * __ptr64,unsigned long) __ptr64
-?Write@CRcovStrmTrans@@IEAAXPEBXK@Z
-; public: long __cdecl CPropStoreManager::WritePrimaryProperty(class CCompositePropRecordForWrites & __ptr64,unsigned long,class CStorageVariant const & __ptr64) __ptr64
-?WritePrimaryProperty@CPropStoreManager@@QEAAJAEAVCCompositePropRecordForWrites@@KAEBVCStorageVariant@@@Z
-; public: long __cdecl CPropStoreManager::WritePrimaryProperty(unsigned long,unsigned long,class CStorageVariant const & __ptr64) __ptr64
-?WritePrimaryProperty@CPropStoreManager@@QEAAJKKAEBVCStorageVariant@@@Z
-; public: long __cdecl CPropStoreManager::WriteProperty(class CCompositePropRecordForWrites & __ptr64,unsigned long,class CStorageVariant const & __ptr64) __ptr64
-?WriteProperty@CPropStoreManager@@QEAAJAEAVCCompositePropRecordForWrites@@KAEBVCStorageVariant@@@Z
-; public: long __cdecl CPropStoreManager::WriteProperty(unsigned long,unsigned long,class CStorageVariant const & __ptr64) __ptr64
-?WriteProperty@CPropStoreManager@@QEAAJKKAEBVCStorageVariant@@@Z
-; public: unsigned long __cdecl CPropStoreManager::WritePropertyInNewRecord(unsigned long,class CStorageVariant const & __ptr64) __ptr64
-?WritePropertyInNewRecord@CPropStoreManager@@QEAAKKAEBVCStorageVariant@@@Z
-; private: class CDbProjectListAnchor * __ptr64 __cdecl CDbNestingNode::_FindGroupListAnchor(void) __ptr64
-?_FindGroupListAnchor@CDbNestingNode@@AEAAPEAVCDbProjectListAnchor@@XZ
-; private: class CDbProjectListAnchor * __ptr64 __cdecl CDbProjectNode::_FindOrAddAnchor(void) __ptr64
-?_FindOrAddAnchor@CDbProjectNode@@AEAAPEAVCDbProjectListAnchor@@XZ
-; private: class CDbSortListAnchor * __ptr64 __cdecl CDbSortNode::_FindOrAddAnchor(void) __ptr64
-?_FindOrAddAnchor@CDbSortNode@@AEAAPEAVCDbSortListAnchor@@XZ
-; private: class CDbScalarValue * __ptr64 __cdecl CDbPropertyRestriction::_FindOrAddValueNode(void) __ptr64
-?_FindOrAddValueNode@CDbPropertyRestriction@@AEAAPEAVCDbScalarValue@@XZ
-; private: int __cdecl CImpersonateRemoteAccess::_ImpersonateIf(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
-?_ImpersonateIf@CImpersonateRemoteAccess@@AEAAHPEBG0K@Z
-; unsigned __int64 __cdecl _wcstoui64(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,int)
-?_wcstoui64@@YA_KPEBGPEAPEAGH@Z
-; void __cdecl ciDelete(void * __ptr64)
-?ciDelete@@YAXPEAX@Z
-; int __cdecl ciIsValidPointer(void const * __ptr64)
-?ciIsValidPointer@@YAHPEBX@Z
-; void * __ptr64 __cdecl ciNew(unsigned __int64)
-?ciNew@@YAPEAX_K@Z
-; public: unsigned long __cdecl CFileBuffer::fgetsw(class XGrowable<unsigned short,260> & __ptr64) __ptr64
-?fgetsw@CFileBuffer@@QEAAKAEAV?$XGrowable@G$0BAE@@@@Z
-; unsigned short * __ptr64 __cdecl wcsipattern(unsigned short * __ptr64,unsigned short const * __ptr64)
-?wcsipattern@@YAPEAGPEAGPEBG@Z
-AbortMerges
-BeginCacheTransaction
-BindIFilterFromStorage
-BindIFilterFromStream
-CIBuildQueryNode
-CIBuildQueryTree
-CICreateCommand
-CIGetGlobalPropertyList
-CIMakeICommand
-CIRestrictionToFullTree
-CIState
-CITextToFullTree
-CITextToFullTreeEx
-CITextToSelectTree
-CITextToSelectTreeEx
-CiSvcMain
-CollectCIISAPIPerformanceData
-CollectCIPerformanceData
-CollectFILTERPerformanceData
-DllCanUnloadNow
-DllGetClassObject
-DllRegisterServer
-DllUnregisterServer
-DoneCIISAPIPerformanceData
-DoneCIPerformanceData
-DoneFILTERPerformanceData
-EndCacheTransaction
-ForceMasterMerge
-InitializeCIISAPIPerformanceData
-InitializeCIPerformanceData
-InitializeFILTERPerformanceData
-LoadBHIFilter
-LoadBinaryFilter
-LoadIFilter
-LoadIFilterEx
-LoadTextFilter
-LocateCatalogs
-LocateCatalogsA
-LocateCatalogsW
-SetCatalogState
-SetupCache
-SetupCacheEx
-StartFWCiSvcWork
-StopFWCiSvcWork
-SvcEntry_CiSvc
lib/libc/mingw/libarm32/query.def
@@ -1,51 +0,0 @@
-;
-; Definition file of query.dll
-; Automatic generated by gendef
-; written by Kai Tietz 2008-2014
-;
-LIBRARY "query.dll"
-EXPORTS
-BeginCacheTransaction
-CIBuildQueryNode
-CIBuildQueryTree
-CICreateCommand
-CIGetGlobalPropertyList
-CIMakeICommand
-CIRestrictionToFullTree
-CIState
-CITextToFullTree
-CITextToFullTreeEx
-CITextToSelectTree
-CITextToSelectTreeEx
-CiCreateSecurityDescriptor
-CiSvcMain
-CollectCIISAPIPerformanceData
-CollectCIPerformanceData
-CollectFILTERPerformanceData
-DoneCIISAPIPerformanceData
-DoneCIPerformanceData
-DoneFILTERPerformanceData
-EndCacheTransaction
-FsCiShutdown
-InitializeCIISAPIPerformanceData
-InitializeCIPerformanceData
-InitializeFILTERPerformanceData
-LoadBinaryFilter
-LoadTextFilter
-SetCatalogState
-SetupCache
-SetupCacheEx
-SvcEntry_CiSvc
-BindIFilterFromStorage
-BindIFilterFromStream
-CIRevertToSelf
-CIShutdown
-InternalBindIFilterFromDocCLSID
-InternalBindIFilterFromFileName
-InternalBindIFilterFromStorage
-InternalBindIFilterFromStream
-LoadIFilter
-LoadIFilterEx
-LocateCatalogs
-LocateCatalogsA
-LocateCatalogsW
lib/libc/mingw/math/x86/asinh.c
@@ -5,6 +5,7 @@
  */
 #include <math.h>
 #include <errno.h>
+#include <float.h>
 #include "fastmath.h"
 
  /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */
@@ -21,13 +22,53 @@ double asinh(double x)
     return x;
 #endif
 
-  /* Use log1p to avoid cancellation with small x. Put
-     x * x in denom, so overflow is harmless. 
-     asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0)
-              = log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0))  */
+  /* NB the previous formula
+          z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0));
+     was defective in two ways:
+     1: It ommitted required brackets:
+          z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0)));
+                                    ^                                     ^
+        so would still overflow for large z.
+     2: Even with the brackets, it still degraded quickly for large z
+        (where z*z+1 == z*z).
+        e.g. asinh (sinh 356.0)) gave 355.30685281944005
+    */
 
-  z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0));
+  const double asinhCutover = pow(2,DBL_MAX_EXP/2); // 1.3407807929943e+154
 
-  return ( x > 0.0 ? z : -z);
+  if (z < asinhCutover)
+  /* After excluding large values, the rearranged formula gives better results
+     the original formula log(z + sqrt(z * z + 1.0)) for very small z.
+        e.g. rearranged asinh(sinh 2e-301)) = 2e-301
+             original   asinh(sinh 2e-301)) = 0.
+     asinh(z) = log   (z + sqrt (z * z + 1.0))
+              = log1p (z + sqrt (z * z + 1.0) - 1.0)
+              = log1p (z + (sqrt (z * z + 1.0) - 1.0)
+                         * (sqrt (z * z + 1.0) + 1.0)
+                         / (sqrt (z * z + 1.0) + 1.0))
+              = log1p (z + ((z * z + 1.0) - 1.0)
+                         / (sqrt (z * z + 1.0) + 1.0))
+              = log1p (z + z * z / (sqrt (z * z + 1.0) + 1.0))
+    */
+    z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0)));
+  else
+  /* above this, z*z+1 == z*z, so we can simplify
+     (and avoid z*z being infinity).
+      asinh(z) = log (z + sqrt (z * z + 1.0))
+               = log (z + sqrt (z * z      ))
+               = log (2 * z)
+               = log 2 + log z
+      Choosing asinhCutover is a little tricky.
+      We'd like something that's based on the nature of
+      the numeric type (DBL_MAX_EXP, etc).
+      If c = asinhCutover, then we need:
+         (1) c*c == c*c + 1
+         (2) log (2*c) = log 2 + log c.
+      For float:
+         9.490626562425156e7 is the smallest value that
+         achieves (1), but it fails (2). (It only just fails,
+         but enough to make the function erroneously non-monotonic).
+    */
+    z = __fast_log(2) + __fast_log(z);
+  return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
 }
-
lib/libc/mingw/math/x86/asinhf.c
@@ -5,6 +5,7 @@
  */
 #include <math.h>
 #include <errno.h>
+#include <float.h>
 #include "fastmath.h"
 
  /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */
@@ -21,13 +22,13 @@ float asinhf(float x)
     return x;
 #endif
 
+  /* See commentary in asinh */
+  const float asinhCutover = pow(2,FLT_MAX_EXP/2);
 
-  /* Use log1p to avoid cancellation with small x. Put
-     x * x in denom, so overflow is harmless. 
-     asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0)
-              = log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0))  */
-
-  z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0));
-
-  return ( x > 0.0 ? z : -z);
+  if (z < asinhCutover)
+    z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0)));
+    //z = __fast_log(z + __fast_sqrt(z * z + 1.0));
+  else
+    z = __fast_log(2) + __fast_log(z);
+  return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
 }
lib/libc/mingw/math/x86/asinhl.c
@@ -5,6 +5,7 @@
  */
 #include <math.h>
 #include <errno.h>
+#include <float.h>
 #include "fastmath.h"
 
  /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */
@@ -22,12 +23,12 @@ long double asinhl(long double x)
     return x;
 #endif
 
-  /* Use log1p to avoid cancellation with small x. Put
-     x * x in denom, so overflow is harmless. 
-     asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0)
-              = log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0))  */
+  /* See commentary in asinh */
+  const long double asinhCutover = powl(2,LDBL_MAX_EXP/2);
 
-  z = __fast_log1pl (z + z * z / (__fast_sqrtl (z * z + 1.0L) + 1.0L));
-
-  return ( x > 0.0 ? z : -z);
+  if (z < asinhCutover)
+    z = __fast_log1pl (z + z * (z / (__fast_sqrtl (z * z + 1.0) + 1.0)));
+  else
+    z = __fast_logl(2) + __fast_logl(z);
+  return copysignl(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
 }
lib/libc/mingw/math/x86/atanh.c
@@ -32,5 +32,5 @@ double atanh(double x)
            = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) 
            = 0.5 * log1p ((2.0 * x ) / (1.0 - x))  */
   z = 0.5 * __fast_log1p ((z + z) / (1.0 - z));
-  return x >= 0 ? z : -z;
+  return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
 }
lib/libc/mingw/math/x86/atanhf.c
@@ -31,5 +31,5 @@ float atanhf (float x)
            = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) 
            = 0.5 * log1p ((2.0 * x ) / (1.0 - x))  */
   z = 0.5 * __fast_log1p ((z + z) / (1.0 - z));
-  return x >= 0 ? z : -z;
+  return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
 }
lib/libc/mingw/math/x86/atanhl.c
@@ -30,5 +30,5 @@ long double atanhl (long double x)
            = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) 
            = 0.5 * log1p ((2.0 * x ) / (1.0 - x))  */
   z = 0.5L * __fast_log1pl ((z + z) / (1.0L - z));
-  return x >= 0 ? z : -z;
+  return copysignl(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
 }
lib/libc/mingw/math/cephes_emath.c
@@ -1,1283 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#include "cephes_emath.h"
-
-/*
- * The constants are for 64 bit precision.
- */
-
-
-/* Move in external format number,
- * converting it to internal format.
- */
-void __emovi(const short unsigned int * __restrict__ a,
-	     short unsigned int * __restrict__ b)
-{
-	register const unsigned short *p;
-	register unsigned short *q;
-	int i;
-
-	q = b;
-	p = a + (NE-1);	/* point to last word of external number */
-	/* get the sign bit */
-	if (*p & 0x8000)
-		*q++ = 0xffff;
-	else
-		*q++ = 0;
-	/* get the exponent */
-	*q = *p--;
-	*q++ &= 0x7fff;	/* delete the sign bit */
-#ifdef INFINITY
-	if ((*(q - 1) & 0x7fff) == 0x7fff)
-	{
-#ifdef NANS
-		if (__eisnan(a))
-		{
-			*q++ = 0;
-			for (i = 3; i < NI; i++ )
-				*q++ = *p--;
-			return;
-		}
-#endif
-		for (i = 2; i < NI; i++)
-			*q++ = 0;
-		return;
-	}
-#endif
-	/* clear high guard word */
-	*q++ = 0;
-	/* move in the significand */
-	for (i = 0; i < NE - 1; i++ )
-		*q++ = *p--;
-	/* clear low guard word */
-	*q = 0;
-}
-
-
-/*
-;	Add significands
-;	x + y replaces y
-*/
-
-void __eaddm(const short unsigned int * __restrict__ x,
-		  short unsigned int * __restrict__ y)
-{
-	register unsigned long a;
-	int i;
-	unsigned int carry;
-
-	x += NI - 1;
-	y += NI - 1;
-	carry = 0;
-	for (i = M; i < NI; i++)
-	{
-		a = (unsigned long)(*x) + (unsigned long)(*y) + carry;
-		if (a & 0x10000)
-			carry = 1;
-		else
-			carry = 0;
-		*y = (unsigned short)a;
-		--x;
-		--y;
-	}
-}
-
-/*
-;	Subtract significands
-;	y - x replaces y
-*/
-
-void __esubm(const short unsigned int * __restrict__ x,
-		  short unsigned int * __restrict__ y)
-{
-	unsigned long a;
-	int i;
-	unsigned int carry;
-
-	x += NI - 1;
-	y += NI - 1;
-	carry = 0;
-	for (i = M; i < NI; i++)
-	{
-		a = (unsigned long)(*y) - (unsigned long)(*x) - carry;
-		if (a & 0x10000)
-			carry = 1;
-		else
-			carry = 0;
-		*y = (unsigned short)a;
-		--x;
-		--y;
-	}
-}
-
-
-/* Multiply significand of e-type number b
-by 16-bit quantity a, e-type result to c. */
-
-static void __m16m(short unsigned int a,
-		   short unsigned int *  __restrict__ b,
-		   short unsigned int *  __restrict__ c)
-{
-	register unsigned short *pp;
-	register unsigned long carry;
-	unsigned short *ps;
-	unsigned short p[NI];
-	unsigned long aa, m;
-	int i;
-
-	aa = a;
-	pp = &p[NI - 2];
-	*pp++ = 0;
-	*pp = 0;
-	ps = &b[NI - 1];
-
-	for(i = M + 1; i < NI; i++)
-	{
-		if (*ps == 0)
-		{
-			--ps;
-			--pp;
-			*(pp - 1) = 0;
-		}
-		else
-		{
-			m = (unsigned long) aa * *ps--;
-			carry = (m & 0xffff) + *pp;
-			*pp-- = (unsigned short)carry;
-			carry = (carry >> 16) + (m >> 16) + *pp;
-			*pp = (unsigned short)carry;
-			*(pp - 1) = carry >> 16;
-		}
-	}
-	for (i = M; i < NI; i++)
-	c[i] = p[i];
-}
-
-
-/* Divide significands. Neither the numerator nor the denominator
-is permitted to have its high guard word nonzero.  */
-
-int __edivm(short unsigned int * __restrict__ den,
-		 short unsigned int * __restrict__ num)
-{
-	int i;
-	register unsigned short *p;
-	unsigned long tnum;
-	unsigned short j, tdenm, tquot;
-	unsigned short tprod[NI + 1];
-	unsigned short equot[NI];
-
-	p = &equot[0];
-	*p++ = num[0];
-	*p++ = num[1];
-
-	for (i = M; i < NI; i++)
-	{
-		*p++ = 0;
-	}
-	__eshdn1(num);
-	tdenm = den[M + 1];
-	for (i = M; i < NI; i++)
-	{
-		/* Find trial quotient digit (the radix is 65536). */
-		tnum = (((unsigned long) num[M]) << 16) + num[M + 1];
-
-		/* Do not execute the divide instruction if it will overflow. */
-		if ((tdenm * 0xffffUL) < tnum)
-			tquot = 0xffff;
-		else
-			tquot = tnum / tdenm;
-
-		/* Prove that the divide worked. */
-		/*
-		tcheck = (unsigned long)tquot * tdenm;
-		if (tnum - tcheck > tdenm)
-			tquot = 0xffff;
-		*/
-		/* Multiply denominator by trial quotient digit. */
-		__m16m(tquot, den, tprod);
-		/* The quotient digit may have been overestimated. */
-		if (__ecmpm(tprod, num) > 0)
-		{
-			tquot -= 1;
-			__esubm(den, tprod);
-			if(__ecmpm(tprod, num) > 0)
-			{
-				tquot -= 1;
-				__esubm(den, tprod);
-			}
-		}
-		__esubm(tprod, num);
-		equot[i] = tquot;
-		__eshup6(num);
-	}
-	/* test for nonzero remainder after roundoff bit */
-	p = &num[M];
-	j = 0;
-	for (i = M; i < NI; i++)
-	{
-		j |= *p++;
-	}
-	if (j)
-		j = 1;
-
-	for (i = 0; i < NI; i++)
-		num[i] = equot[i];
-
-	return ( (int)j );
-}
-
-
-/* Multiply significands */
-int __emulm(const short unsigned int * __restrict__ a,
-		 short unsigned int * __restrict__ b)
-{
-	const unsigned short *p;
-	unsigned short *q;
-	unsigned short pprod[NI];
-	unsigned short equot[NI];
-	unsigned short j;
-	int i;
-
-	equot[0] = b[0];
-	equot[1] = b[1];
-	for (i = M; i < NI; i++)
-		equot[i] = 0;
-
-	j = 0;
-	p = &a[NI - 1];
-	q = &equot[NI - 1];
-	for (i = M + 1; i < NI; i++)
-	{
-		if (*p == 0)
-		{
-			--p;
-		}
-		else
-		{
-			__m16m(*p--, b, pprod);
-			__eaddm(pprod, equot);
-		}
-		j |= *q;
-		__eshdn6(equot);
-	}
-
-	for (i = 0; i < NI; i++)
-		b[i] = equot[i];
-
-	/* return flag for lost nonzero bits */
-	return ( (int)j );
-}
-
-
-/*
- * Normalize and round off.
- *
- * The internal format number to be rounded is "s".
- * Input "lost" indicates whether the number is exact.
- * This is the so-called sticky bit.
- *
- * Input "subflg" indicates whether the number was obtained
- * by a subtraction operation.  In that case if lost is nonzero
- * then the number is slightly smaller than indicated.
- *
- * Input "expo" is the biased exponent, which may be negative.
- * the exponent field of "s" is ignored but is replaced by
- * "expo" as adjusted by normalization and rounding.
- *
- * Input "rcntrl" is the rounding control.
- *
- * Input "rnprc" is precison control (64 or NBITS).
- */
-
-void __emdnorm(short unsigned int *s, int lost, int subflg, int expo, int rcntrl, int rndprc)
-{
-	int i, j;
-	unsigned short r;
-	int rw = NI-1; /* low guard word */
-	int re = NI-2;
-	const unsigned short rmsk = 0xffff;
-	const unsigned short rmbit = 0x8000;
-#if NE == 6
-	unsigned short rbit[NI] = {0,0,0,0,0,0,0,1,0};
-#else
-	unsigned short rbit[NI] = {0,0,0,0,0,0,0,0,0,0,0,1,0};
-#endif
-
-	/* Normalize */
-	j = __enormlz(s);
-
-	/* a blank significand could mean either zero or infinity. */
-#ifndef INFINITY
-	if (j > NBITS)
-	{
-		__ecleazs(s);
-		return;
-	}
-#endif
-	expo -= j;
-#ifndef INFINITY
-	if (expo >= 32767L)
-		goto overf;
-#else
-	if ((j > NBITS) && (expo < 32767L))
-	{
-		__ecleazs(s);
-		return;
-	}
-#endif
-	if (expo < 0L)
-	{
-		if (expo > (long)(-NBITS - 1))
-		{
-			j = (int)expo;
-			i = __eshift(s, j);
-			if (i)
-				lost = 1;
-		}
-		else
-		{
-			__ecleazs(s);
-			return;
-		}
-	}
-	/* Round off, unless told not to by rcntrl. */
-	if (rcntrl == 0)
-		goto mdfin;
-	if (rndprc == 64)
-	{
-		rw = 7;
-		re = 6;
-		rbit[NI - 2] = 0;
-		rbit[6] = 1;
-	}
-
-	/* Shift down 1 temporarily if the data structure has an implied
-	 * most significant bit and the number is denormal.
-	 * For rndprc = 64 or NBITS, there is no implied bit.
-	 * But Intel long double denormals lose one bit of significance even so.
-	 */
-#if IBMPC
-	if ((expo <= 0) && (rndprc != NBITS))
-#else
-	if ((expo <= 0) && (rndprc != 64) && (rndprc != NBITS))
-#endif
-	{
-		lost |= s[NI - 1] & 1;
-		__eshdn1(s);
-	}
-	/* Clear out all bits below the rounding bit,
-	 * remembering in r if any were nonzero.
-	 */
-	r = s[rw] & rmsk;
-	if (rndprc < NBITS)
-	{
-		i = rw + 1;
-		while (i < NI)
-		{
-			if( s[i] )
-				r |= 1;
-			s[i] = 0;
-			++i;
-		}
-	}
-	s[rw] &= (rmsk ^ 0xffff);
-	if ((r & rmbit) != 0)
-	{
-		if (r == rmbit)
-		{
-			if (lost == 0)
-			{ /* round to even */
-				if ((s[re] & 1) == 0)
-					goto mddone;
-			}
-			else
-			{
-				if (subflg != 0)
-					goto mddone;
-			}
-		}
-		__eaddm(rbit, s);
-	}
-mddone:
-#if IBMPC
-	if ((expo <= 0) && (rndprc != NBITS))
-#else
-	if ((expo <= 0) && (rndprc != 64) && (rndprc != NBITS))
-#endif
-	{
-		__eshup1(s);
-	}
-	if (s[2] != 0)
-	{ /* overflow on roundoff */
-		__eshdn1(s);
-		expo += 1;
-	}
-mdfin:
-	s[NI - 1] = 0;
-	if (expo >= 32767L)
-	{
-#ifndef INFINITY
-overf:
-#endif
-#ifdef INFINITY
-		s[1] = 32767;
-		for (i = 2; i < NI - 1; i++ )
-			s[i] = 0;
-#else
-		s[1] = 32766;
-		s[2] = 0;
-		for (i = M + 1; i < NI - 1; i++)
-			s[i] = 0xffff;
-		s[NI - 1] = 0;
-		if ((rndprc < 64) || (rndprc == 113))
-			s[rw] &= (rmsk ^ 0xffff);
-#endif
-		return;
-	}
-	if (expo < 0)
-		s[1] = 0;
-	else
-		s[1] = (unsigned short)expo;
-}
-
-
-/*
-;	Multiply.
-;
-;	unsigned short a[NE], b[NE], c[NE];
-;	emul( a, b, c );	c = b * a
-*/
-void __emul(const short unsigned int *a,
-		 const short unsigned int *b,
-		 short unsigned int *c)
-{
-	unsigned short ai[NI], bi[NI];
-	int i, j;
-	long lt, lta, ltb;
-
-#ifdef NANS
-	/* NaN times anything is the same NaN. */
-	if (__eisnan(a))
-	{
-		__emov(a, c);
-		return;
-	}
-	if (__eisnan(b))
-	{
-		__emov(b, c);
-		return;
-	}
-	/* Zero times infinity is a NaN. */
-	if ((__eisinf(a) && __eiiszero(b))
-	 || (__eisinf(b) && __eiiszero(a)))
-	{
-		mtherr( "emul", DOMAIN);
-		__enan_NBITS(c);
-		return;
-	}
-#endif
-/* Infinity times anything else is infinity. */
-#ifdef INFINITY
-	if (__eisinf(a) || __eisinf(b))
-	{
-		if (__eisneg(a) ^ __eisneg(b))
-			*(c + (NE-1)) = 0x8000;
-		else
-			*(c + (NE-1)) = 0;
-		__einfin(c);
-		return;
-	}
-#endif
-	__emovi(a, ai);
-	__emovi(b, bi);
-	lta = ai[E];
-	ltb = bi[E];
-	if (ai[E] == 0)
-	{
-		for (i = 1; i < NI - 1; i++)
-		{
-			if (ai[i] != 0)
-			{
-				lta -= __enormlz( ai );
-				goto mnzer1;
-			}
-		}
-		__eclear(c);
-		return;
-	}
-mnzer1:
-
-	if (bi[E] == 0)
-	{
-		for (i = 1; i < NI - 1; i++)
-		{
-			if (bi[i] != 0)
-			{
-				ltb -= __enormlz(bi);
-				goto mnzer2;
-			}
-		}
-		__eclear(c);
-		return;
-	}
-mnzer2:
-
-	/* Multiply significands */
-	j = __emulm(ai, bi);
-	/* calculate exponent */
-	lt = lta + ltb - (EXONE - 1);
-	__emdnorm(bi, j, 0, lt, 64, NBITS);
-	/* calculate sign of product */
-	if (ai[0] == bi[0])
-		bi[0] = 0;
-	else
-		bi[0] = 0xffff;
-	__emovo(bi, c);
-}
-
-
-/* move out internal format to ieee long double */
-void __toe64(short unsigned int *a, short unsigned int *b)
-{
-	register unsigned short *p, *q;
-	unsigned short i;
-
-#ifdef NANS
-	if (__eiisnan(a))
-	{
-		__enan_64(b);
-		return;
-	}
-#endif
-#ifdef IBMPC
-	/* Shift Intel denormal significand down 1.  */
-	if (a[E] == 0)
-		__eshdn1(a);
-#endif
-	p = a;
-#ifdef MIEEE
-	q = b;
-#else
-	q = b + 4; /* point to output exponent */
-#if 1
-	/* NOTE: if data type is 96 bits wide, clear the last word here. */
-	*(q + 1)= 0;
-#endif
-#endif
-
-	/* combine sign and exponent */
-	i = *p++;
-#ifdef MIEEE
-	if (i)
-		*q++ = *p++ | 0x8000;
-	else
-		*q++ = *p++;
-	*q++ = 0;
-#else
-	if (i)
-		*q-- = *p++ | 0x8000;
-	else
-		*q-- = *p++;
-#endif
-	/* skip over guard word */
-	++p;
-	/* move the significand */
-#ifdef MIEEE
-	for (i = 0; i < 4; i++)
-		*q++ = *p++;
-#else
-#ifdef INFINITY
-	if (__eiisinf(a))
-        {
-	/* Intel long double infinity.  */
-		*q-- = 0x8000;
-		*q-- = 0;
-		*q-- = 0;
-		*q = 0;
-		return;
-	}
-#endif
-	for (i = 0; i < 4; i++)
-		*q-- = *p++;
-#endif
-}
-
-
-/* Compare two e type numbers.
- *
- * unsigned short a[NE], b[NE];
- * ecmp( a, b );
- *
- *  returns +1 if a > b
- *           0 if a == b
- *          -1 if a < b
- *          -2 if either a or b is a NaN.
- */
-int __ecmp(const short unsigned int * __restrict__ a,
-		const short unsigned int *  __restrict__ b)
-{
-	unsigned short ai[NI], bi[NI];
-	register unsigned short *p, *q;
-	register int i;
-	int msign;
-
-#ifdef NANS
-	if (__eisnan (a) || __eisnan (b))
-		return (-2);
-#endif
-	__emovi(a, ai);
-	p = ai;
-	__emovi(b, bi);
-	q = bi;
-
-	if (*p != *q)
-	{ /* the signs are different */
-		/* -0 equals + 0 */
-		for (i = 1; i < NI - 1; i++)
-		{
-			if (ai[i] != 0)
-				goto nzro;
-			if (bi[i] != 0)
-				goto nzro;
-		}
-		return (0);
-nzro:
-		if (*p == 0)
-			return (1);
-		else
-			return (-1);
-	}
-	/* both are the same sign */
-	if (*p == 0)
-		msign = 1;
-	else
-		msign = -1;
-	i = NI - 1;
-	do
-	{
-		if (*p++ != *q++)
-		{
-			goto diff;
-		}
-	}
-	while (--i > 0);
-
-	return (0);	/* equality */
-
-diff:
-	if ( *(--p) > *(--q) )
-		return (msign);		/* p is bigger */
-	else
-		return (-msign);	/* p is littler */
-}
-
-/*
-;	Shift significand
-;
-;	Shifts significand area up or down by the number of bits
-;	given by the variable sc.
-*/
-int __eshift(short unsigned int *x, int sc)
-{
-	unsigned short lost;
-	unsigned short *p;
-
-	if (sc == 0)
-		return (0);
-
-	lost = 0;
-	p = x + NI - 1;
-
-	if (sc < 0)
-	{
-		sc = -sc;
-		while (sc >= 16)
-		{
-			lost |= *p;	/* remember lost bits */
-			__eshdn6(x);
-			sc -= 16;
-		}
-
-		while (sc >= 8)
-		{
-			lost |= *p & 0xff;
-			__eshdn8(x);
-			sc -= 8;
-		}
-
-		while (sc > 0)
-		{
-			lost |= *p & 1;
-			__eshdn1(x);
-			sc -= 1;
-		}
-	}
-	else
-	{
-		while (sc >= 16)
-		{
-			__eshup6(x);
-			sc -= 16;
-		}
-
-		while (sc >= 8)
-		{
-			__eshup8(x);
-			sc -= 8;
-		}
-
-		while (sc > 0)
-		{
-			__eshup1(x);
-			sc -= 1;
-		}
-	}
-	if (lost)
-		lost = 1;
-	return ( (int)lost );
-}
-
-
-/*
-;	normalize
-;
-; Shift normalizes the significand area pointed to by argument
-; shift count (up = positive) is returned.
-*/
-int __enormlz(short unsigned int *x)
-{
-	register unsigned short *p;
-	int sc;
-
-	sc = 0;
-	p = &x[M];
-	if (*p != 0)
-		goto normdn;
-	++p;
-	if (*p & 0x8000)
-		return (0);	/* already normalized */
-	while (*p == 0)
-	{
-		__eshup6(x);
-		sc += 16;
-		/* With guard word, there are NBITS+16 bits available.
-		 * return true if all are zero.
-		 */
-		if (sc > NBITS)
-			return (sc);
-	}
-	/* see if high byte is zero */
-	while ((*p & 0xff00) == 0)
-	{
-		__eshup8(x);
-		sc += 8;
-	}
-	/* now shift 1 bit at a time */
-	while ((*p  & 0x8000) == 0)
-	{
-		__eshup1(x);
-		sc += 1;
-		if (sc > (NBITS + 16))
-		{
-			mtherr( "enormlz", UNDERFLOW);
-			return (sc);
-		}
-	}
-	return (sc);
-
-	/* Normalize by shifting down out of the high guard word
-	   of the significand */
-normdn:
-	if (*p & 0xff00)
-	{
-		__eshdn8(x);
-		sc -= 8;
-	}
-	while (*p != 0)
-	{
-		__eshdn1(x);
-		sc -= 1;
-
-		if (sc < -NBITS)
-		{
-			mtherr("enormlz", OVERFLOW);
-			return (sc);
-		}
-	}
-	return (sc);
-}
-
-
-/* Move internal format number out,
- * converting it to external format.
- */
-void __emovo(const short unsigned int * __restrict__ a,
-		  short unsigned int * __restrict__ b)
-{
-	register const unsigned short *p;
-	register unsigned short *q;
-	unsigned short i;
-
-	p = a;
-	q = b + (NE - 1); /* point to output exponent */
-	/* combine sign and exponent */
-	i = *p++;
-	if (i)
-		*q-- = *p++ | 0x8000;
-	else
-		*q-- = *p++;
-#ifdef INFINITY
-	if (*(p - 1) == 0x7fff)
-	{
-#ifdef NANS
-		if (__eiisnan(a))
-		{
-			__enan_NBITS(b);
-			return;
-		}
-#endif
-		__einfin(b);
-		return;
-	}
-#endif
-	/* skip over guard word */
-	++p;
-	/* move the significand */
-	for (i = 0; i < NE - 1; i++)
-		*q-- = *p++;
-}
-
-
-#if USE_LDTOA
-
-void __eiremain(short unsigned int *den, short unsigned int *num,
-	 short unsigned int *equot )
-{
-	long ld, ln;
-	unsigned short j;
-
-	ld = den[E];
-	ld -= __enormlz(den);
-	ln = num[E];
-	ln -= __enormlz(num);
-	__ecleaz(equot);
-	while (ln >= ld)
-	{
-		if(__ecmpm(den,num) <= 0)
-		{
-			__esubm(den, num);
-			j = 1;
-		}
-		else
-		{
-			j = 0;
-		}
-		__eshup1(equot);
-		equot[NI - 1] |= j;
-		__eshup1(num);
-		ln -= 1;
-	}
-	__emdnorm( num, 0, 0, ln, 0, NBITS );
-}
-
-
-void __eadd1(const short unsigned int *  __restrict__ a,
-		  const short unsigned int *  __restrict__ b,
-		  short unsigned int *  __restrict__ c,
-		  int subflg)
-{
-	unsigned short ai[NI], bi[NI], ci[NI];
-	int i, lost, j, k;
-	long lt, lta, ltb;
-
-#ifdef INFINITY
-	if (__eisinf(a))
-	{
-		__emov(a, c);
-		if( subflg )
-			__eneg(c);
-		return;
-	}
-	if (__eisinf(b))
-	{
-		__emov(b, c);
-		return;
-	}
-#endif
-	__emovi(a, ai);
-	__emovi(b, bi);
-	if (sub)
-		ai[0] = ~ai[0];
-
-	/* compare exponents */
-	lta = ai[E];
-	ltb = bi[E];
-	lt = lta - ltb;
-	if (lt > 0L)
-	{	/* put the larger number in bi */
-		__emovz(bi, ci);
-		__emovz(ai, bi);
-		__emovz(ci, ai);
-		ltb = bi[E];
-		lt = -lt;
-	}
-	lost = 0;
-	if (lt != 0L)
-	{
-		if (lt < (long)(-NBITS - 1))
-			goto done;	/* answer same as larger addend */
-		k = (int)lt;
-		lost = __eshift(ai, k); /* shift the smaller number down */
-	}
-	else
-	{
-		/* exponents were the same, so must compare significands */
-		i = __ecmpm(ai, bi);
-		if (i == 0)
-		{ /* the numbers are identical in magnitude */
-			/* if different signs, result is zero */
-			if (ai[0] != bi[0])
-			{
-				__eclear(c);
-				return;
-			}
-			/* if same sign, result is double */
-			/* double denomalized tiny number */
-			if ((bi[E] == 0) && ((bi[3] & 0x8000) == 0))
-			{
-				__eshup1( bi );
-				goto done;
-			}
-			/* add 1 to exponent unless both are zero! */
-			for (j = 1; j < NI - 1; j++)
-			{
-				if (bi[j] != 0)
-				{
-				/* This could overflow, but let emovo take care of that. */
-					ltb += 1;
-					break;
-				}
-			}
-			bi[E] = (unsigned short )ltb;
-			goto done;
-		}
-		if (i > 0)
-		{	/* put the larger number in bi */
-			__emovz(bi, ci);
-			__emovz(ai, bi);
-			__emovz(ci, ai);
-		}
-	}
-	if (ai[0] == bi[0])
-	{
-		__eaddm(ai, bi);
-		subflg = 0;
-	}
-	else
-	{
-		__esubm(ai, bi);
-		subflg = 1;
-	}
-	__emdnorm(bi, lost, subflg, ltb, 64, NBITS);
-
-done:
-	__emovo(bi, c);
-}
-
-
-/* y = largest integer not greater than x
- * (truncated toward minus infinity)
- *
- * unsigned short x[NE], y[NE]
- *
- * efloor( x, y );
- */
-
-
-void __efloor(short unsigned int *x, short unsigned int *y)
-{
-	register unsigned short *p;
-	int e, expon, i;
-	unsigned short f[NE];
-	const unsigned short bmask[] = {
-				0xffff,
-				0xfffe,
-				0xfffc,
-				0xfff8,
-				0xfff0,
-				0xffe0,
-				0xffc0,
-				0xff80,
-				0xff00,
-				0xfe00,
-				0xfc00,
-				0xf800,
-				0xf000,
-				0xe000,
-				0xc000,
-				0x8000,
-				0x0000,
-	};
-
-	__emov(x, f); /* leave in external format */
-	expon = (int) f[NE - 1];
-	e = (expon & 0x7fff) - (EXONE - 1);
-	if (e <= 0)
-	{
-		__eclear(y);
-		goto isitneg;
-	}
-	/* number of bits to clear out */
-	e = NBITS - e;
-	__emov(f, y);
-	if (e <= 0)
-		return;
-
-	p = &y[0];
-	while (e >= 16)
-	{
-		*p++ = 0;
-		e -= 16;
-	}
-	/* clear the remaining bits */
-	*p &= bmask[e];
-	/* truncate negatives toward minus infinity */
-isitneg:
-
-	if ((unsigned short)expon & (unsigned short)0x8000)
-	{
-		for (i = 0; i < NE - 1; i++)
-		{
-			if (f[i] != y[i])
-			{
-				__esub( __eone, y, y );
-				break;
-			}
-		}
-	}
-}
-
-/*
-;	Subtract external format numbers.
-;
-;	unsigned short a[NE], b[NE], c[NE];
-;	esub( a, b, c );	 c = b - a
-*/
-
-void __esub(const short unsigned int *  a,
-		 const short unsigned int *  b,
-		 short unsigned int *  c)
-{
-#ifdef NANS
-	if (__eisnan(a))
-	{
-		__emov (a, c);
-		return;
-	}
-	if ( __eisnan(b))
-	{
-		__emov(b, c);
-		return;
-	}
-	/* Infinity minus infinity is a NaN.
-	 * Test for subtracting infinities of the same sign.
-	 */
-	if (__eisinf(a) && __eisinf(b) && ((__eisneg (a) ^ __eisneg (b)) == 0))
-	{
-		mtherr("esub", DOMAIN);
-		__enan_NBITS( c );
-		return;
-	}
-#endif
-	__eadd1(a, b, c, 1);
-}
-
-
-/*
-;	Divide.
-;
-;	unsigned short a[NI], b[NI], c[NI];
-;	ediv( a, b, c );	c = b / a
-*/
-
-void __ediv(const short unsigned int *a,
-		 const short unsigned int *b,
-		 short unsigned int *c)
-{
-	unsigned short ai[NI], bi[NI];
-	int i;
-	long lt, lta, ltb;
-
-#ifdef NANS
-	/* Return any NaN input. */
-	if (__eisnan(a))
-	{
-		__emov(a, c);
-		return;
-	}
-	if (__eisnan(b))
-	{
-		__emov(b, c);
-		return;
-	}
-	/* Zero over zero, or infinity over infinity, is a NaN. */
-	if ((__eiszero(a) && __eiszero(b))
-	 || (__eisinf (a) && __eisinf (b)))
-	{
-		mtherr("ediv", DOMAIN);
-		__enan_NBITS( c );
-		return;
-	}
-#endif
-/* Infinity over anything else is infinity. */
-#ifdef INFINITY
-	if (__eisinf(b))
-	{
-		if (__eisneg(a) ^ __eisneg(b))
-			*(c + (NE - 1)) = 0x8000;
-		else
-			*(c + (NE - 1)) = 0;
-		__einfin(c);
-		return;
-	}
-	if (__eisinf(a))
-	{
-		__eclear(c);
-		return;
-	}
-#endif
-	__emovi(a, ai);
-	__emovi(b, bi);
-	lta = ai[E];
-	ltb = bi[E];
-	if (bi[E] == 0)
-	{ /* See if numerator is zero. */
-		for (i = 1; i < NI - 1; i++)
-		{
-			if (bi[i] != 0)
-			{
-				ltb -= __enormlz(bi);
-				goto dnzro1;
-			}
-		}
-		__eclear(c);
-		return;
-	}
-dnzro1:
-
-	if (ai[E] == 0)
-	{	/* possible divide by zero */
-		for (i = 1; i < NI - 1; i++)
-		{
-			if (ai[i] != 0)
-			{
-				lta -= __enormlz(ai);
-				goto dnzro2;
-			}
-		}
-		if (ai[0] == bi[0])
-			*(c + (NE - 1)) = 0;
-		else
-			*(c + (NE - 1)) = 0x8000;
-		__einfin(c);
-		mtherr("ediv", SING);
-		return;
-	}
-dnzro2:
-
-	i = __edivm(ai, bi);
-	/* calculate exponent */
-	lt = ltb - lta + EXONE;
-	__emdnorm(bi, i, 0, lt, 64, NBITS);
-	/* set the sign */
-	if (ai[0] == bi[0])
-		bi[0] = 0;
-	else
-		bi[0] = 0Xffff;
-	__emovo(bi, c);
-}
-
-void __e64toe(short unsigned int *pe, short unsigned int *y)
-{
-	unsigned short yy[NI];
-	unsigned short *p, *q, *e;
-	int i;
-
-	e = pe;
-	p = yy;
-	for (i = 0; i < NE - 5; i++)
-		*p++ = 0;
-#ifdef IBMPC
-	for (i = 0; i < 5; i++)
-		*p++ = *e++;
-#endif
-#ifdef DEC
-	for (i = 0; i < 5; i++)
-		*p++ = *e++;
-#endif
-#ifdef MIEEE
-	p = &yy[0] + (NE - 1);
-	*p-- = *e++;
-	++e;
-	for (i = 0; i < 4; i++)
-		*p-- = *e++;
-#endif
-
-#ifdef IBMPC
-	/* For Intel long double, shift denormal significand up 1
-	   -- but only if the top significand bit is zero.  */
-	if ((yy[NE - 1] & 0x7fff) == 0 && (yy[NE - 2] & 0x8000) == 0)
-	{
-		unsigned short temp[NI + 1];
-		__emovi(yy, temp);
-		__eshup1(temp);
-		__emovo(temp,y);
-		return;
-	}
-#endif
-#ifdef INFINITY
-	/* Point to the exponent field.  */
-	p = &yy[NE - 1];
-	if (*p == 0x7fff)
-	{
-#ifdef NANS
-#ifdef IBMPC
-		for (i = 0; i < 4; i++)
-		{
-			if ((i != 3 && pe[i] != 0)
-			  /* Check for Intel long double infinity pattern.  */
-			  || (i == 3 && pe[i] != 0x8000))
-			{
-				__enan_NBITS(y);
-				return;
-			}
-		}
-#else
-		for (i = 1; i <= 4; i++)
-		{
-			if (pe[i] != 0)
-			{
-				__enan_NBITS(y);
-				return;
-			}
-		}
-#endif
-#endif /* NANS */
-		__eclear(y);
-		__einfin(y);
-		if (*p & 0x8000)
-			__eneg(y);
-		return;
-	}
-#endif
-	p = yy;
-	q = y;
-	for (i = 0; i < NE; i++)
-		*q++ = *p++;
-}
-
-#endif /* USE_LDTOA */ 
lib/libc/mingw/math/cephes_emath.h
@@ -1,719 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _CEPHES_EMATH_H
-#define _CEPHES_EMATH_H
-
-/**
- * This is a workaround for a gcc bug
- */
-#define __restrict__
-
-/* This file is extracted from S L Moshier's  ioldoubl.c,
- * modified for use in MinGW 
- *
- * Extended precision arithmetic functions for long double I/O.
- * This program has been placed in the public domain.
- */
-
-
-/*
- * Revision history:
- *
- *  5 Jan 84	PDP-11 assembly language version
- *  6 Dec 86	C language version
- * 30 Aug 88	100 digit version, improved rounding
- * 15 May 92    80-bit long double support
- *
- * Author:  S. L. Moshier.
- *
- * 6 Oct 02	Modified for MinGW by inlining utility routines,
- * 		removing global variables, and splitting out strtold
- *		from _IO_ldtoa and _IO_ldtostr.
- *  
- *		Danny Smith <dannysmith@users.sourceforge.net>
- * 
- */
-
-
-/*							ieee.c
- *
- *    Extended precision IEEE binary floating point arithmetic routines
- *
- * Numbers are stored in C language as arrays of 16-bit unsigned
- * short integers.  The arguments of the routines are pointers to
- * the arrays.
- *
- *
- * External e type data structure, simulates Intel 8087 chip
- * temporary real format but possibly with a larger significand:
- *
- *	NE-1 significand words	(least significant word first,
- *				 most significant bit is normally set)
- *	exponent		(value = EXONE for 1.0,
- *				top bit is the sign)
- *
- *
- * Internal data structure of a number (a "word" is 16 bits):
- *
- * ei[0]	sign word	(0 for positive, 0xffff for negative)
- * ei[1]	biased __exponent	(value = EXONE for the number 1.0)
- * ei[2]	high guard word	(always zero after normalization)
- * ei[3]
- * to ei[NI-2]	significand	(NI-4 significand words,
- *				 most significant word first,
- *				 most significant bit is set)
- * ei[NI-1]	low guard word	(0x8000 bit is rounding place)
- *
- *
- *
- *		Routines for external format numbers
- *
- *	__asctoe64( string, &d )	ASCII string to long double
- *	__asctoeg( string, e, prec )	ASCII string to specified precision
- *	__e64toe( &d, e )		IEEE long double precision to e type
- *	__eadd( a, b, c )		c = b + a
- *	__eclear(e)			e = 0
- *	__ecmp (a, b)			Returns 1 if a > b, 0 if a == b,
- *					-1 if a < b, -2 if either a or b is a NaN.
- *	__ediv( a, b, c )		c = b / a
- *	__efloor( a, b )		truncate to integer, toward -infinity
- *	__efrexp( a, exp, s )		extract exponent and significand
- *	__eifrac( e, &l, frac )   	e to long integer and e type fraction
- *	__euifrac( e, &l, frac )  	e to unsigned long integer and e type fraction
- *	__einfin( e )			set e to infinity, leaving its sign alone
- *	__eldexp( a, n, b )		multiply by 2**n
- *	__emov( a, b )			b = a
- *	__emul( a, b, c )		c = b * a
- *	__eneg(e)			e = -e
- *	__eround( a, b )		b = nearest integer value to a
- *	__esub( a, b, c )		c = b - a
- *	__e24toasc( &f, str, n )	single to ASCII string, n digits after decimal
- *	__e53toasc( &d, str, n )	double to ASCII string, n digits after decimal
- *	__e64toasc( &d, str, n )	long double to ASCII string
- *	__etoasc( e, str, n )		e to ASCII string, n digits after decimal
- *	__etoe24( e, &f )		convert e type to IEEE single precision
- *	__etoe53( e, &d )		convert e type to IEEE double precision
- *	__etoe64( e, &d )		convert e type to IEEE long double precision
- *	__eisneg( e )             	1 if sign bit of e != 0, else 0
- *	__eisinf( e )             	1 if e has maximum exponent (non-IEEE)
- *					or is infinite (IEEE)
- *	__eisnan( e )             	1 if e is a NaN
- *	__esqrt( a, b )			b = square root of a
- *
- *
- *		Routines for internal format numbers
- *
- *	__eaddm( ai, bi )		add significands, bi = bi + ai
- *	__ecleaz(ei)		ei = 0
- *	__ecleazs(ei)		set ei = 0 but leave its sign alone
- *	__ecmpm( ai, bi )		compare significands, return 1, 0, or -1
- *	__edivm( ai, bi )		divide  significands, bi = bi / ai
- *	__emdnorm(ai,l,s,exp)	normalize and round off
- *	__emovi( a, ai )		convert external a to internal ai
- *	__emovo( ai, a )		convert internal ai to external a
- *	__emovz( ai, bi )		bi = ai, low guard word of bi = 0
- *	__emulm( ai, bi )		multiply significands, bi = bi * ai
- *	__enormlz(ei)		left-justify the significand
- *	__eshdn1( ai )		shift significand and guards down 1 bit
- *	__eshdn8( ai )		shift down 8 bits
- *	__eshdn6( ai )		shift down 16 bits
- *	__eshift( ai, n )		shift ai n bits up (or down if n < 0)
- *	__eshup1( ai )		shift significand and guards up 1 bit
- *	__eshup8( ai )		shift up 8 bits
- *	__eshup6( ai )		shift up 16 bits
- *	__esubm( ai, bi )		subtract significands, bi = bi - ai
- *
- *
- * The result is always normalized and rounded to NI-4 word precision
- * after each arithmetic operation.
- *
- * Exception flags are NOT fully supported.
- *
- * Define INFINITY in mconf.h for support of infinity; otherwise a
- * saturation arithmetic is implemented.
- *
- * Define NANS for support of Not-a-Number items; otherwise the
- * arithmetic will never produce a NaN output, and might be confused
- * by a NaN input.
- * If NaN's are supported, the output of ecmp(a,b) is -2 if
- * either a or b is a NaN. This means asking if(ecmp(a,b) < 0)
- * may not be legitimate. Use if(ecmp(a,b) == -1) for less-than
- * if in doubt.
- * Signaling NaN's are NOT supported; they are treated the same
- * as quiet NaN's.
- *
- * Denormals are always supported here where appropriate (e.g., not
- * for conversion to DEC numbers).
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <math.h>
-#include <locale.h>
-#include <ctype.h>
-
-#undef alloca
-#define alloca __builtin_alloca
-
-/* Don't build non-ANSI _IO_ldtoa.  It is not thread safe. */ 
-#ifndef USE_LDTOA
-#define USE_LDTOA 0
-#endif
-
-
- /* Number of 16 bit words in external x type format */
-#define NE 6
-
- /* Number of 16 bit words in internal format */
-#define NI (NE+3)
-
- /* Array offset to exponent */
-#define E 1
-
- /* Array offset to high guard word */
-#define M 2
-
- /* Number of bits of precision */
-#define NBITS ((NI-4)*16)
-
- /* Maximum number of decimal digits in ASCII conversion
-  * = NBITS*log10(2)
-  */
-#define NDEC (NBITS*8/27)
-
- /* The exponent of 1.0 */
-#define EXONE (0x3fff)
-
-
-#define mtherr(fname, code)
-
-
-extern long double strtold (const char * __restrict__ s, char ** __restrict__ se);
-extern int __asctoe64(const char * __restrict__ ss,
-		      short unsigned int * __restrict__ y);
-extern void __emul(const short unsigned int *  a,
-		   const short unsigned int *  b,
-		   short unsigned int * c);
-extern int __ecmp(const short unsigned int * __restrict__ a,
-		  const short unsigned int *  __restrict__ b);
-extern int __enormlz(short unsigned int *x);
-extern int __eshift(short unsigned int *x, int sc);
-extern void __eaddm(const short unsigned int  *  __restrict__  x,
-		    short unsigned int *  __restrict__  y);
-extern void __esubm(const short unsigned int * __restrict__  x,
-		    short unsigned int *  __restrict__ y);
-extern void __emdnorm(short unsigned int *s, int lost, int subflg,
-		      int exp, int rcntrl, const int rndprc);
-extern void __toe64(short unsigned int *  __restrict__  a,
-		    short unsigned int *  __restrict__  b);
-extern int __edivm(short unsigned int *  __restrict__  den,
-		   short unsigned int * __restrict__  num);
-extern int __emulm(const short unsigned int *  __restrict__ a,
-		   short unsigned int *  __restrict__ b);
-extern void __emovi(const short unsigned int * __restrict__ a,
-		    short unsigned int * __restrict__ b);
-extern void __emovo(const short unsigned int * __restrict__ a,
-		    short unsigned int * __restrict__ b);
-
-#if USE_LDTOA
-
-extern char * _IO_ldtoa(long double, int, int, int *, int *, char **);
-extern void _IO_ldtostr(long double *x, char *string, int ndigs,
-			int flags, char fmt);
-
-extern void __eiremain(short unsigned int * __restrict__ den,
-		       short unsigned int *__restrict__ num,
-		       short unsigned int *__restrict__ equot);
-extern void __efloor(short unsigned int *x, short unsigned int *y);
-extern void __eadd1(const short unsigned int * __restrict__ a,
-		    const short unsigned int * __restrict__ b,
-		    short unsigned int * __restrict__ c,
-		    int subflg);
-extern void __esub(const short unsigned int *a, const short unsigned int *b,
-		   short unsigned int *c);
-extern void __ediv(const short unsigned int *a, const short unsigned int *b,
-		   short unsigned int *c);
-extern void __e64toe(short unsigned int *pe, short unsigned int *y);
-
-
-#endif
-
-static  __inline__ int __eisneg(const short unsigned int *x);
-static  __inline__ int __eisinf(const short unsigned int *x);
-static __inline__ int __eisnan(const short unsigned int *x);
-static __inline__ int __eiszero(const short unsigned int *a);
-static __inline__ void __emovz(register const short unsigned int * __restrict__ a,
-			       register short unsigned int * __restrict__ b);
-static __inline__ void __eclear(register short unsigned int *x);
-static __inline__ void __ecleaz(register short unsigned int *xi);
-static __inline__ void __ecleazs(register short unsigned int *xi);
-static  __inline__ int __eiisinf(const short unsigned int *x);
-static __inline__ int __eiisnan(const short unsigned int *x);
-static __inline__ int __eiiszero(const short unsigned int *x);
-static __inline__ void __enan_64(short unsigned int *nanptr);
-static __inline__ void __enan_NBITS (short unsigned int *nanptr);
-static __inline__ void __enan_NI16 (short unsigned int *nanptr);
-static __inline__ void __einfin(register short unsigned int *x);
-static __inline__ void __eneg(short unsigned int *x);
-static __inline__ void __eshup1(register short unsigned int *x);
-static __inline__ void __eshup8(register short unsigned int *x);
-static __inline__ void __eshup6(register short unsigned int *x);
-static __inline__ void __eshdn1(register short unsigned int *x);
-static __inline__ void __eshdn8(register short unsigned int *x);
-static __inline__ void __eshdn6(register short unsigned int *x);
-
-
-
-/* Intel IEEE, low order words come first:
- */
-#define IBMPC 1
-
-/* Define 1 for ANSI C atan2() function
- * See atan.c and clog.c.
- */
-#define ANSIC 1
-
-/*define VOLATILE volatile*/
-#define VOLATILE
-
-/* For 12-byte long doubles on an i386, pad a 16-bit short 0
- * to the end of real constants initialized by integer arrays.
- *
- * #define XPD 0,
- *
- * Otherwise, the type is 10 bytes long and XPD should be
- * defined blank.
- *
- * #define XPD
- */
-#define XPD 0,
-/* #define XPD */
-#define NANS 1
-
-/* NaN's require infinity support. */
-#ifdef NANS
-#ifndef INFINITY
-#define INFINITY
-#endif
-#endif
-
-/* This handles 64-bit long ints. */
-#define LONGBITS (8 * sizeof(long))
-
-
-#define NTEN 12
-#define MAXP 4096
-
-/*
-; Clear out entire external format number.
-;
-; unsigned short x[];
-; eclear( x );
-*/
-
-static __inline__ void __eclear(register short unsigned int *x)
-{
-	memset(x, 0, NE * sizeof(unsigned short));
-}
-
-
-/* Move external format number from a to b.
- *
- * emov( a, b );
- */
-
-static __inline__ void __emov(register const short unsigned int * __restrict__ a,
-			      register short unsigned int * __restrict__ b)
-{
-	memcpy(b, a, NE * sizeof(unsigned short));
-}
-
-
-/*
-;	Negate external format number
-;
-;	unsigned short x[NE];
-;	eneg( x );
-*/
-
-static __inline__ void __eneg(short unsigned int *x)
-{
-#ifdef NANS
-	if (__eisnan(x))
-		return;
-#endif
-	x[NE-1] ^= 0x8000; /* Toggle the sign bit */
-}
-
-
-/* Return 1 if external format number is negative,
- * else return zero.
- */
-static __inline__ int __eisneg(const short unsigned int *x)
-{
-#ifdef NANS
-	if (__eisnan(x))
-		return (0);
-#endif
-	if (x[NE-1] & 0x8000)
-		return (1);
-	else
-		return (0);
-}
-
-
-/* Return 1 if external format number has maximum possible exponent,
- * else return zero.
- */
-static __inline__ int __eisinf(const short unsigned int *x)
-{
-	if ((x[NE - 1] & 0x7fff) == 0x7fff)
-	{
-#ifdef NANS
-		if (__eisnan(x))
-			return (0);
-#endif
-		return (1);
-	}
-	else
-		return (0);
-}
-
-/* Check if e-type number is not a number.
- */
-static __inline__ int __eisnan(const short unsigned int *x)
-{
-#ifdef NANS
-	int i;
-	/* NaN has maximum __exponent */
-	if ((x[NE - 1] & 0x7fff) == 0x7fff)
-		/* ... and non-zero significand field. */
-		for (i = 0; i < NE - 1; i++)
-		{
-			if (*x++ != 0)
-				return (1);
-		}
-#endif
-	return (0);
-}
-
-/*
-; Fill __entire number, including __exponent and significand, with
-; largest possible number.  These programs implement a saturation
-; value that is an ordinary, legal number.  A special value
-; "infinity" may also be implemented; this would require tests
-; for that value and implementation of special rules for arithmetic
-; operations involving inifinity.
-*/
-
-static __inline__ void __einfin(register short unsigned int *x)
-{
-	register int i;
-#ifdef INFINITY
-	for (i = 0; i < NE - 1; i++)
-		*x++ = 0;
-	*x |= 32767;
-#else
-	for (i = 0; i < NE - 1; i++)
-		*x++ = 0xffff;
-	*x |= 32766;
-	*(x - 5) = 0;
-#endif
-}
-
-/* Clear out internal format number.
- */
-
-static __inline__ void __ecleaz(register short unsigned int *xi)
-{
-	memset(xi, 0, NI * sizeof(unsigned short));
-}
-
-/* same, but don't touch the sign. */
-
-static __inline__ void __ecleazs(register short unsigned int *xi)
-{
-	++xi;
-	memset(xi, 0, (NI-1) * sizeof(unsigned short));
-}
-
-/* Move internal format number from a to b.
- */
-static __inline__ void __emovz(register const short unsigned int * __restrict__ a,
-			       register short unsigned int * __restrict__ b)
-{
-	memcpy(b, a, (NI-1) * sizeof(unsigned short));
-	b[NI - 1] = 0;
-}
-
-/* Return nonzero if internal format number is a NaN.
- */
-
-static __inline__ int __eiisnan (const short unsigned int *x)
-{
-	int i;
-
-	if ((x[E] & 0x7fff) == 0x7fff)
-	{
-		for (i = M + 1; i < NI; i++ )
-		{
-			if (x[i] != 0)
-				return (1);
-		}
-	}
-	return (0);
-}
-
-/* Return nonzero if external format number is zero. */
-
-static __inline__ int
-__eiszero(const short unsigned int * a)
-{
-  union {
-    long double ld;
-    unsigned short sh[8];
-  } av;
-  av.ld = 0.0;
-  memcpy (av.sh, a, 12);
-  if (av.ld == 0.0)
-    return (1);
-  return (0);
-}
-
-/* Return nonzero if internal format number is zero. */
-
-static __inline__ int
-__eiiszero(const short unsigned int * ai)
-{
-	int i;
-	/* skip the sign word */
-	for (i = 1; i < NI - 1; i++ )
-	{
-		if (ai[i] != 0)
-			return (0);
-	}
-	return (1);
-}
-
-
-/* Return nonzero if internal format number is infinite. */
-
-static __inline__ int 
-__eiisinf (const unsigned short *x)
-{
-#ifdef NANS
-	if (__eiisnan (x))
-		return (0);
-#endif
-	if ((x[E] & 0x7fff) == 0x7fff)
-		return (1);
-	return (0);
-}
-
-/*
-;	Compare significands of numbers in internal format.
-;	Guard words are included in the comparison.
-;
-;	unsigned short a[NI], b[NI];
-;	cmpm( a, b );
-;
-;	for the significands:
-;	returns	+1 if a > b
-;		 0 if a == b
-;		-1 if a < b
-*/
-static __inline__ int __ecmpm(register const short unsigned int * __restrict__ a,
-			      register const short unsigned int * __restrict__ b)
-{
-	int i;
-
-	a += M; /* skip up to significand area */
-	b += M;
-	for (i = M; i < NI; i++)
-	{
-		if( *a++ != *b++ )
-		goto difrnt;
-	}
-	return(0);
-
-  difrnt:
-	if ( *(--a) > *(--b) )
-		return (1);
-	else
-		return (-1);
-}
-
-
-/*
-;	Shift significand down by 1 bit
-*/
-
-static __inline__ void __eshdn1(register short unsigned int *x)
-{
-	register unsigned short bits;
-	int i;
-
-	x += M;	/* point to significand area */
-
-	bits = 0;
-	for (i = M; i < NI; i++ )
-	{
-		if (*x & 1)
-			bits |= 1;
-		*x >>= 1;
-		if (bits & 2)
-			*x |= 0x8000;
-		bits <<= 1;
-		++x;
-	}
-}
-
-/*
-;	Shift significand up by 1 bit
-*/
-
-static __inline__ void __eshup1(register short unsigned int *x)
-{
-	register unsigned short bits;
-	int i;
-
-	x += NI-1;
-	bits = 0;
-
-	for (i = M; i < NI; i++)
-	{
-		if (*x & 0x8000)
-			bits |= 1;
-		*x <<= 1;
-		if (bits & 2)
-			*x |= 1;
-		bits <<= 1;
-		--x;
-	}
-}
-
-
-/*
-;	Shift significand down by 8 bits
-*/
-
-static __inline__ void __eshdn8(register short unsigned int *x)
-{
-	register unsigned short newbyt, oldbyt;
-	int i;
-
-	x += M;
-	oldbyt = 0;
-	for (i = M; i < NI; i++)
-	{
-		newbyt = *x << 8;
-		*x >>= 8;
-		*x |= oldbyt;
-		oldbyt = newbyt;
-		++x;
-	}
-}
-
-/*
-;	Shift significand up by 8 bits
-*/
-
-static __inline__ void __eshup8(register short unsigned int *x)
-{
-	int i;
-	register unsigned short newbyt, oldbyt;
-
-	x += NI - 1;
-	oldbyt = 0;
-
-	for (i = M; i < NI; i++)
-	{
-		newbyt = *x >> 8;
-		*x <<= 8;
-		*x |= oldbyt;
-		oldbyt = newbyt;
-		--x;
-	}
-}
-
-/*
-;	Shift significand up by 16 bits
-*/
-
-static __inline__ void __eshup6(register short unsigned int *x)
-{
-	int i;
-	register unsigned short *p;
-
-	p = x + M;
-	x += M + 1;
-
-	for (i = M; i < NI - 1; i++)
-		*p++ = *x++;
-
-	*p = 0;
-}
-
-/*
-;	Shift significand down by 16 bits
-*/
-
-static __inline__ void __eshdn6(register short unsigned int *x)
-{
-	int i;
-	register unsigned short *p;
-
-	x += NI - 1;
-	p = x + 1;
-
-	for (i = M; i < NI - 1; i++)
-		*(--p) = *(--x);
-
-	*(--p) = 0;
-}
-
-/*
-;	Add significands
-;	x + y replaces y
-*/
-
-static __inline__ void __enan_64(unsigned short* nanptr)
-{
-	int i;
-	for (i = 0; i < 3; i++)
-		*nanptr++ = 0;
-	*nanptr++ = 0xc000;
-	*nanptr++ = 0x7fff;
-	*nanptr = 0;
-	return;
-}
-
-static __inline__ void __enan_NBITS(unsigned short* nanptr)
-{
-	int i;
-	for (i = 0; i < NE - 2; i++)
-		*nanptr++ = 0;
-	*nanptr++ = 0xc000;
-	*nanptr = 0x7fff;
-	return;
-}
-
-static __inline__ void __enan_NI16(unsigned short* nanptr)
-{
-	int i;
-	*nanptr++ = 0;
-	*nanptr++ = 0x7fff;
-	*nanptr++ = 0;
-	*nanptr++ = 0xc000;
-	for (i = 4; i < NI; i++)
-		*nanptr++ = 0;
-	return;
-}
-
-#endif /* _CEPHES_EMATH_H */
-
lib/libc/mingw/misc/btowc.c
@@ -19,8 +19,10 @@ wint_t btowc (int c)
     {
       unsigned char ch = c;
       wchar_t wc = WEOF;
-      MultiByteToWideChar (___lc_codepage_func(), MB_ERR_INVALID_CHARS,
-			   (char*)&ch, 1, &wc, 1);
+      if (!MultiByteToWideChar (___lc_codepage_func(), MB_ERR_INVALID_CHARS,
+                                (char*)&ch, 1, &wc, 1))
+        return WEOF;
+
       return wc;
     }
 }
lib/libc/mingw/misc/lc_locale_func.c
@@ -2,18 +2,11 @@
 #define ___lc_codepage_func __dummy____lc_codepage_func
 #include <windows.h>
 #include <locale.h>
-#include <msvcrt.h>
 
 #undef __lc_codepage
 #undef ___lc_codepage_func
 #include "mb_wc_common.h"
 
-static unsigned int *msvcrt__lc_codepage;
-static unsigned int __cdecl msvcrt___lc_codepage_func(void)
-{
-    return *msvcrt__lc_codepage;
-}
-
 static unsigned int __cdecl setlocale_codepage_hack(void)
 {
     /* locale :: "lang[_country[.code_page]]" | ".code_page"  */
@@ -21,14 +14,23 @@ static unsigned int __cdecl setlocale_codepage_hack(void)
     return cp_str ? atoi(cp_str + 1) : 0;
 }
 
-static unsigned int __cdecl init_codepage_func(void);
-unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = init_codepage_func;
+#ifndef __LIBMSVCRT_OS__
 
-unsigned int __cdecl ___lc_codepage_func (void)
+unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = setlocale_codepage_hack;
+
+#else
+
+#include <msvcrt.h>
+
+static unsigned int *msvcrt__lc_codepage;
+static unsigned int __cdecl msvcrt___lc_codepage_func(void)
 {
-  return __MINGW_IMP_SYMBOL(___lc_codepage_func) ();
+    return *msvcrt__lc_codepage;
 }
 
+static unsigned int __cdecl init_codepage_func(void);
+unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = init_codepage_func;
+
 static unsigned int __cdecl init_codepage_func(void)
 {
     HMODULE msvcrt = __mingw_get_msvcrt_handle();
@@ -48,3 +50,10 @@ static unsigned int __cdecl init_codepage_func(void)
 
     return (__MINGW_IMP_SYMBOL(___lc_codepage_func) = func)();
 }
+
+#endif
+
+unsigned int __cdecl ___lc_codepage_func(void)
+{
+    return __MINGW_IMP_SYMBOL(___lc_codepage_func)();
+}
lib/libc/mingw/misc/mingw_wcstod.c
@@ -1,4 +1,7 @@
 #include <stdio.h>
+#include <float.h>
+#include <errno.h>
+#include <math.h>
 
 extern long double __cdecl
 __mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr);
@@ -9,7 +12,20 @@ __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndP
 double __cdecl
 __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr)
 {
-  return (double) __mingw_wcstold (_Str, _EndPtr);
+  long double ret = __mingw_wcstold (_Str, _EndPtr);
+  if (isfinite(ret)) {
+    /* Check for cases that aren't out of range for long doubles, but that are
+     * for doubles. */
+    if (ret > DBL_MAX)
+      errno = ERANGE;
+    else if (ret < -DBL_MAX)
+      errno = ERANGE;
+    else if (ret > 0 && ret < DBL_MIN)
+      errno = ERANGE;
+    else if (ret < 0 && ret > -DBL_MIN)
+      errno = ERANGE;
+  }
+  return ret;
 }
 
 
lib/libc/mingw/misc/mingw_wcstold.c
@@ -1,32 +1,74 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+/*  Wide char wrapper for strtold
+ *  Revision history:
+ *  6 Nov 2002	Initial version.
+ *  25 Aug 2006  Don't use strtold internal functions.
+ *
+ *  Contributor:   Danny Smith <dannysmith@users.sourceforege.net>
+ */
+
+ /* This routine has been placed in the public domain.*/
+
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
 #include <windows.h>
-#include <stdio.h>
+#include <locale.h>
+#include <wchar.h>
+#include <stdlib.h>
+#include <string.h>
+#include <mbstring.h>
 
-long double __cdecl
-__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr);
+#include "mb_wc_common.h"
 
-long double __cdecl
-__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr)
+long double __mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
 {
-  long double r;
-  char *n, *ep = NULL;
-  size_t l, l2;
-
-  l = WideCharToMultiByte(CP_UTF8, 0, _Str, -1, NULL, 0, NULL, NULL);
-  n = alloca (l + 1);
-  if (l != 0) WideCharToMultiByte (CP_UTF8, 0, _Str, -1, n, l, NULL, NULL);
-  n[l] = 0;
-  r = __mingw_strtold (n, &ep);  
-  if (ep != NULL)
-  {
-    *ep = 0;
-    l2 = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, n, -1, NULL, 0);
-    if (l2 > 0)
-      l2 -= 1; /* Remove zero terminator from length.  */
-    if (_EndPtr)
-      *_EndPtr = (wchar_t *) &_Str[l2];
-  }
-  else if (_EndPtr)
-   *_EndPtr = NULL;
-  return r;
-}
+  char * cs;
+  char * cse;
+  unsigned int i;
+  long double ret;
+  const unsigned int cp = ___lc_codepage_func();
+
+  /* Allocate enough room for (possibly) mb chars */
+  cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX);
 
+  if (cp == 0) /* C locale */
+    {
+      for (i = 0; (wcs[i] != 0) && wcs[i] <= 255; i++)
+        cs[i] = (char) wcs[i];
+      cs[i]  = '\0';
+    }
+  else
+    {
+      int nbytes = -1;
+      int mb_len = 0;
+      /* loop through till we hit null or invalid character */
+      for (i = 0; (wcs[i] != 0) && (nbytes != 0); i++)
+	{
+	  nbytes = WideCharToMultiByte(cp, WC_COMPOSITECHECK | WC_SEPCHARS,
+				       wcs + i, 1, cs + mb_len, MB_CUR_MAX,
+				       NULL, NULL);
+	  mb_len += nbytes;
+	}
+      cs[mb_len] = '\0';
+    }
+
+  ret =  strtold (cs, &cse);
+
+  if (wcse)
+    {
+      /* Make sure temp mbstring has 0 at cse.  */ 
+      *cse = '\0';
+      i = MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, cs, -1, NULL, 0);
+      if (i > 0)
+        i -= 1; /* Remove zero terminator from length.  */
+      *wcse = (wchar_t *) wcs + i;
+    }
+  free (cs);
+
+  return ret;
+}
lib/libc/mingw/misc/seterrno.c
@@ -8,11 +8,17 @@
 errno_t __cdecl _set_errno (int _Value)
 {
   errno = _Value;
-  return errno;
+  return 0;
 }
 
 errno_t __cdecl _get_errno (int *_Value)
 {
-  if(_Value) *_Value=errno;
-  return errno;
+  if(!_Value)
+  {
+    errno = EINVAL;
+    return EINVAL;
+  }
+
+  *_Value = errno;
+  return 0;
 }
lib/libc/mingw/misc/setjmp.S
@@ -50,6 +50,8 @@ __MINGW_USYMBOL(__intrinsic_setjmpex):
         movq    %r15,0x48(%rcx)      /* jmp_buf->R15 */
         movq    (%rsp),%rax
         movq    %rax,0x50(%rcx)      /* jmp_buf->Rip */
+        stmxcsr 0x58(%rcx)           /* jmp_buf->MxCsr */
+        fnstcw  0x5c(%rcx)           /* jmp_buf->FpCsr */
         movdqa  %xmm6,0x60(%rcx)     /* jmp_buf->Xmm6 */
         movdqa  %xmm7,0x70(%rcx)     /* jmp_buf->Xmm7 */
         movdqa  %xmm8,0x80(%rcx)     /* jmp_buf->Xmm8 */
lib/libc/mingw/misc/strtold.c
@@ -1,398 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-
-#include "math/cephes_emath.h"
-
-#if NE == 10
-/* 1.0E0 */
-static const unsigned short __eone[NE] = {
-  0x0000, 0x0000, 0x0000, 0x0000,
-  0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3fff,
-};
-#else
-static const unsigned short __eone[NE] = {
-  0, 0000000,0000000,0000000,0100000,0x3fff,
-};
-#endif
-
-#if NE == 10
-static const unsigned short __etens[NTEN + 1][NE] =
-{
-  {0x6576, 0x4a92, 0x804a, 0x153f,
-   0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,},	/* 10**4096 */
-  {0x6a32, 0xce52, 0x329a, 0x28ce,
-   0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,},	/* 10**2048 */
-  {0x526c, 0x50ce, 0xf18b, 0x3d28,
-   0x650d, 0x0c17, 0x8175, 0x7586, 0xc976, 0x4d48,},
-  {0x9c66, 0x58f8, 0xbc50, 0x5c54,
-   0xcc65, 0x91c6, 0xa60e, 0xa0ae, 0xe319, 0x46a3,},
-  {0x851e, 0xeab7, 0x98fe, 0x901b,
-   0xddbb, 0xde8d, 0x9df9, 0xebfb, 0xaa7e, 0x4351,},
-  {0x0235, 0x0137, 0x36b1, 0x336c,
-   0xc66f, 0x8cdf, 0x80e9, 0x47c9, 0x93ba, 0x41a8,},
-  {0x50f8, 0x25fb, 0xc76b, 0x6b71,
-   0x3cbf, 0xa6d5, 0xffcf, 0x1f49, 0xc278, 0x40d3,},
-  {0x0000, 0x0000, 0x0000, 0x0000,
-   0xf020, 0xb59d, 0x2b70, 0xada8, 0x9dc5, 0x4069,},
-  {0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0400, 0xc9bf, 0x8e1b, 0x4034,},
-  {0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x2000, 0xbebc, 0x4019,},
-  {0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x9c40, 0x400c,},
-  {0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0xc800, 0x4005,},
-  {0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,},	/* 10**1 */
-};
-#else
-static const unsigned short __etens[NTEN+1][NE] = {
-  {0xc94c,0x979a,0x8a20,0x5202,0xc460,0x7525,},/* 10**4096 */
-  {0xa74d,0x5de4,0xc53d,0x3b5d,0x9e8b,0x5a92,},/* 10**2048 */
-  {0x650d,0x0c17,0x8175,0x7586,0xc976,0x4d48,},
-  {0xcc65,0x91c6,0xa60e,0xa0ae,0xe319,0x46a3,},
-  {0xddbc,0xde8d,0x9df9,0xebfb,0xaa7e,0x4351,},
-  {0xc66f,0x8cdf,0x80e9,0x47c9,0x93ba,0x41a8,},
-  {0x3cbf,0xa6d5,0xffcf,0x1f49,0xc278,0x40d3,},
-  {0xf020,0xb59d,0x2b70,0xada8,0x9dc5,0x4069,},
-  {0x0000,0x0000,0x0400,0xc9bf,0x8e1b,0x4034,},
-  {0x0000,0x0000,0x0000,0x2000,0xbebc,0x4019,},
-  {0x0000,0x0000,0x0000,0x0000,0x9c40,0x400c,},
-  {0x0000,0x0000,0x0000,0x0000,0xc800,0x4005,},
-  {0x0000,0x0000,0x0000,0x0000,0xa000,0x4002,}, /* 10**1 */
-};
-#endif
-
-int __asctoe64(const char * __restrict__ ss, short unsigned int * __restrict__ y)
-{
-  unsigned short yy[NI], xt[NI], tt[NI];
-  int esign, decflg, nexp, expo, lost;
-  int k, c;
-  int valid_lead_string = 0;
-  int have_non_zero_mant = 0;
-  int prec = 0;
-  /* int trail = 0; */
-  int lexp;
-  unsigned short nsign = 0;
-  const unsigned short *p;
-  char *sp,  *lstr;
-  char *s;
-
-  const char dec_sym = *(localeconv ()->decimal_point); 
-
-  int lenldstr = 0;
-
-  /* Copy the input string. */
-  c = strlen (ss) + 2;
-  lstr = (char *) alloca (c);
-  s = (char *) ss;
-  while( isspace ((int)(unsigned char)*s)) /* skip leading spaces */
-    {
-      ++s;
-      ++lenldstr;
-    }
-  sp = lstr;
-  for (k = 0; k < c; k++)
-    {
-      if ((*sp++ = *s++) == '\0')
-	break;
-    }
-  *sp = '\0';
-  s = lstr;
-
-  if (*s == '-')
-    {
-      nsign = 0xffff;
-      ++s;
-    }
-  else if (*s == '+')
-    {
-     ++s;
-    }
-
-  if (_strnicmp("INF", s , 3) == 0)
-    {
-      valid_lead_string = 1;
-      s += 3;
-      if ( _strnicmp ("INITY", s, 5) == 0)
-	s += 5;
-      __ecleaz(yy);
-      yy[E] = 0x7fff;  /* infinity */
-      goto aexit;
-    }
-  else if(_strnicmp ("NAN", s, 3) == 0)
-    {
-      valid_lead_string = 1;
-      s += 3;
-      __enan_NI16( yy );
-      goto aexit;
-    }
-
-  /* FIXME: Handle case of strtold ("NAN(n_char_seq)",endptr)  */ 
-
-  /*  Now get some digits.  */
-  lost = 0;
-  decflg = 0;
-  nexp = 0;
-  expo = 0;
-  __ecleaz( yy );
-
-  /* Ignore leading zeros */
-  while (*s == '0')
-    {
-      valid_lead_string = 1;
-      s++;
-    }
-
-nxtcom:
-
-  k = *s - '0';
-  if ((k >= 0) && (k <= 9))
-    {
-#if 0
-/* The use of a special char as a flag for trailing zeroes causes problems when input
-   actually contains the char  */
-/* Identify and strip trailing zeros after the decimal point. */
-      if ((trail == 0) && (decflg != 0))
-	{
-	  sp = s;
-	  while ((*sp >= '0') && (*sp <= '9'))
-	    ++sp;
-	  --sp;
-	  while (*sp == '0')
-	    {
-	      *sp-- = (char)-1;
-	      trail++;
-	    }
-	  if( *s == (char)-1 )
-	    goto donchr;
-	}
-#endif
-
-/* If enough digits were given to more than fill up the yy register,
- * continuing until overflow into the high guard word yy[2]
- * guarantees that there will be a roundoff bit at the top
- * of the low guard word after normalization.
- */
-      if (yy[2] == 0)
-	{
-	  if( decflg )
-	    nexp += 1; /* count digits after decimal point */
-	  __eshup1( yy );	/* multiply current number by 10 */
-	  __emovz( yy, xt );
-	  __eshup1( xt );
-	  __eshup1( xt );
-	  __eaddm( xt, yy );
-	  __ecleaz( xt );
-	  xt[NI-2] = (unsigned short )k;
-	  __eaddm( xt, yy );
-	}
-      else
-	{
-	  /* Mark any lost non-zero digit.  */
-	  lost |= k;
-	  /* Count lost digits before the decimal point.  */
-	  if (decflg == 0)
-	    nexp -= 1;
-	}
-      have_non_zero_mant |= k;
-      prec ++;
-      /* goto donchr; */
-    }
-  else if (*s == dec_sym)
-    {
-      if( decflg )
-        goto daldone;
-      ++decflg;
-    }
-  else if ((*s == 'E') || (*s == 'e') )
-    {
-      if (prec || valid_lead_string)
-	goto expnt;
-      else
-	goto daldone;
-    }
-#if 0
-  else if (*s == (char)-1)
-    goto donchr;
-#endif
-  else  /* an invalid char */
-    goto daldone;
-
-  /* donchr: */
-  ++s;
-  goto nxtcom;
-
-/* Exponent interpretation */
-expnt:
-
-  esign = 1;
-  expo = 0;
-  /* Save position in case we need to fall back.  */
-  sp = s;
-  ++s;
-  /* check for + or - */
-  if (*s == '-')
-    {
-      esign = -1;
-      ++s;
-    }
-  if (*s == '+')
-    ++s;
-
-  /* Check for valid exponent.  */
-  if (!(*s >= '0' && *s <= '9'))
-    {
-      s = sp;
-      goto daldone;
-    }
-
-  while ((*s >= '0') && (*s <= '9'))
-    {
-    /* Stop modifying exp if we are going to overflow anyway,
-       but keep parsing the string. */	
-      if (expo < 4978)
-	{
-	  expo *= 10;
-	  expo += *s - '0';
-	}
-      s++;
-    }
-
-  if (esign < 0)
-    expo = -expo;
-
-  if (expo > 4977) /* maybe overflow */
-    {
-      __ecleaz(yy);
-      if (have_non_zero_mant)
-	yy[E] = 0x7fff;
-      goto aexit;
-    }
-  else if (expo < -4977) /* underflow */
-    {
-      __ecleaz(yy);
-      goto aexit;
-    }
-
-daldone:
-
-  nexp = expo - nexp;
-
-  /* Pad trailing zeros to minimize power of 10, per IEEE spec. */
-  while ((nexp > 0) && (yy[2] == 0))
-    {
-      __emovz( yy, xt );
-      __eshup1( xt );
-      __eshup1( xt );
-      __eaddm( yy, xt );
-      __eshup1( xt );
-      if (xt[2] != 0)
-	break;
-      nexp -= 1;
-      __emovz( xt, yy );
-    }
-  if ((k = __enormlz(yy)) > NBITS)
-    {
-      __ecleaz(yy);
-      goto aexit;
-    }
-  lexp = (EXONE - 1 + NBITS) - k;
-  __emdnorm( yy, lost, 0, lexp, 64, NBITS );
-  /* convert to external format */
-
-  /* Multiply by 10**nexp.  If precision is 64 bits,
-   * the maximum relative error incurred in forming 10**n
-   * for 0 <= n <= 324 is 8.2e-20, at 10**180.
-   * For 0 <= n <= 999, the peak relative error is 1.4e-19 at 10**947.
-   * For 0 >= n >= -999, it is -1.55e-19 at 10**-435.
-   */
-  lexp = yy[E];
-  if (nexp == 0)
-    {
-      k = 0;
-      goto expdon;
-    }
-  esign = 1;
-  if (nexp < 0)
-    {
-      nexp = -nexp;
-      esign = -1;
-      if (nexp > 4096)
-	{ /* Punt.  Can't handle this without 2 divides. */
-	  __emovi( __etens[0], tt );
-	  lexp -= tt[E];
-	  k = __edivm( tt, yy );
-	  lexp += EXONE;
-	  nexp -= 4096;
-	}
-    }
-  p = &__etens[NTEN][0];
-  __emov( __eone, xt );
-  expo = 1;
-  do
-    {
-      if (expo & nexp)
-	__emul( p, xt, xt );
-      p -= NE;
-      expo = expo + expo;
-    }
-  while (expo <= MAXP);
-
-  __emovi( xt, tt );
-  if (esign < 0)
-    {
-      lexp -= tt[E];
-      k = __edivm( tt, yy );
-      lexp += EXONE;
-    }
-  else
-    {
-      lexp += tt[E];
-      k = __emulm( tt, yy );
-      lexp -= EXONE - 1;
-    }
-
-expdon:
-
-  /* Round and convert directly to the destination type */
-
-  __emdnorm( yy, k, 0, lexp, 64, 64 );
-
-aexit:
-
-  yy[0] = nsign;
-
-  __toe64( yy, y );
-
-  /* Check for overflow, undeflow  */
-  if (have_non_zero_mant &&
-      (*((long double*) y) == 0.0L || isinf (*((long double*) y)))) 
-    errno = ERANGE;
-
-  if (prec || valid_lead_string)
-    return (lenldstr + (s - lstr));
-
-  return 0;
-}
-
-
-long double strtold (const char * __restrict__ s, char ** __restrict__ se)
-{
-  int lenldstr;
-  union
-  {
-    unsigned short int us[6];
-    long double ld;
-  } xx = {{0}};
-
-  lenldstr =  __asctoe64( s, xx.us);
-  if (se)
-    *se = (char*)s + lenldstr;
-
-  return xx.ld;
-}
-
lib/libc/mingw/misc/wcstold.c
@@ -3,72 +3,10 @@
  * This file is part of the mingw-w64 runtime package.
  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  */
-/*  Wide char wrapper for strtold
- *  Revision history:
- *  6 Nov 2002	Initial version.
- *  25 Aug 2006  Don't use strtold internal functions.
- *
- *  Contributor:   Danny Smith <dannysmith@users.sourceforege.net>
- */
-
- /* This routine has been placed in the public domain.*/
 
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <locale.h>
-#include <wchar.h>
 #include <stdlib.h>
-#include <string.h>
-#include <mbstring.h>
-
-#include "mb_wc_common.h"
 
 long double wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
 {
-  char * cs;
-  char * cse;
-  unsigned int i;
-  long double ret;
-  const unsigned int cp = ___lc_codepage_func();
-
-  /* Allocate enough room for (possibly) mb chars */
-  cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX);
-
-  if (cp == 0) /* C locale */
-    {
-      for (i = 0; (wcs[i] != 0) && wcs[i] <= 255; i++)
-        cs[i] = (char) wcs[i];
-      cs[i]  = '\0';
-    }
-  else
-    {
-      int nbytes = -1;
-      int mb_len = 0;
-      /* loop through till we hit null or invalid character */
-      for (i = 0; (wcs[i] != 0) && (nbytes != 0); i++)
-	{
-	  nbytes = WideCharToMultiByte(cp, WC_COMPOSITECHECK | WC_SEPCHARS,
-				       wcs + i, 1, cs + mb_len, MB_CUR_MAX,
-				       NULL, NULL);
-	  mb_len += nbytes;
-	}
-      cs[mb_len] = '\0';
-    }
-
-  ret =  strtold (cs, &cse);
-
-  if (wcse)
-    {
-      /* Make sure temp mbstring has 0 at cse.  */ 
-      *cse = '\0';
-      i = MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, cs, -1, NULL, 0);
-      if (i > 0)
-        i -= 1; /* Remove zero terminator from length.  */
-      *wcse = (wchar_t *) wcs + i;
-    }
-  free (cs);
-
-  return ret;
+  return __mingw_wcstold(wcs, wcse);
 }
lib/libc/mingw/secapi/vsprintf_s.c
@@ -33,13 +33,8 @@ vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList)
   return _stub (_DstBuf, _Size, _Format, _ArgList);
 }
 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wimplicit-function-declaration"
-
 static int __cdecl
 _int_vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList)
 {
   return __ms_vsnprintf (_DstBuf, _Size, _Format, _ArgList);
 }
-
-#pragma clang diagnostic pop
lib/libc/mingw/stdio/mingw_pformat.c
@@ -212,7 +212,7 @@ typedef enum
   PFORMAT_SET_PRECISION,
   PFORMAT_END
 } __pformat_state_t;
-      
+
 typedef enum
 {
   /* Argument length classification indices...
@@ -289,8 +289,8 @@ typedef struct
   int            precision;
   int            rplen;
   wchar_t        rpchr;
-  int		 thousands_chr_len;
-  wchar_t	 thousands_chr;
+  int            thousands_chr_len;
+  wchar_t        thousands_chr;
   int            count;
   int            quota;
   int            expmin;
@@ -787,7 +787,7 @@ while( value.__pformat_ullong_t )
   {
     /* decomposing it into its constituent decimal digits,
      * in order from least significant to most significant, using
-     * the local buffer as a LIFO queue in which to store them. 
+     * the local buffer as a LIFO queue in which to store them.
      */
     if (p != buf && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0
         && ((p - buf) % 4) == 3)
@@ -833,7 +833,7 @@ while( value.__pformat_ullong_t )
        * to the left of the displayed value, with zeros.
        */
       while( stream->width-- > 0 )
-	*p++ = '0';
+        *p++ = '0';
 
     else if( (stream->flags & PFORMAT_LJUSTIFY) == 0 )
       /*
@@ -842,7 +842,7 @@ while( value.__pformat_ullong_t )
        * the value appears right justified within the output field.
        */
       while( stream->width-- > 0 )
-	__pformat_putc( '\x20', stream );
+        __pformat_putc( '\x20', stream );
   }
 
   if( stream->flags & PFORMAT_NEGATIVE )
@@ -943,7 +943,7 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
      */
     while( width-- > 0 )
       *p++ = '0';
-  
+
   else if( (fmt == 'o') && (stream->flags & PFORMAT_HASHED) )
     /*
      * The field width specified for minimum `precision' has already
@@ -1048,38 +1048,57 @@ typedef union
  */
 #include "../gdtoa/gdtoa.h"
 
-static
-char *__pformat_cvt( int mode, __pformat_fpreg_t x, int nd, int *dp, int *sign )
+static __pformat_fpreg_t init_fpreg_ldouble( long double val )
 {
-  /* Helper function, derived from David M. Gay's `g_xfmt()', calling
-   * his `__gdtoa()' function in a manner to provide extended precision
-   * replacements for `ecvt()' and `fcvt()'.
-   */
-  int k; unsigned int e = 0; char *ep;
-  static FPI fpi = { 64, 1-16383-64+1, 32766-16383-64+1, FPI_Round_near, 0, 14 /* Int_max */ };
- 
+  __pformat_fpreg_t x;
+  x.__pformat_fpreg_ldouble_t = val;
+
   if( sizeof( double ) == sizeof( long double ) )
   {
-    /* The caller has written into x.__pformat_fpreg_ldouble_t, which
-     * actually isn't laid out in the way the rest of the union expects it.
+    /* Here, __pformat_fpreg_t expects to be initialized with a 80 bit long
+     * double, but this platform doesn't have long doubles that differ from
+     * regular 64 bit doubles. Therefore manually convert the 64 bit float
+     * value to an 80 bit float value.
      */
     int exp = (x.__pformat_fpreg_mantissa >> 52) & 0x7ff;
     unsigned long long mant = x.__pformat_fpreg_mantissa & 0x000fffffffffffffULL;
-    int integer = exp ? 1 : 0;
+    int topbit = exp ? 1 : 0;
     int signbit = x.__pformat_fpreg_mantissa >> 63;
 
-    k = __fpclassify( x.__pformat_fpreg_double_t );
-
     if (exp == 0x7ff)
       exp = 0x7fff;
     else if (exp != 0)
       exp = exp - 1023 + 16383;
-    x.__pformat_fpreg_mantissa = (mant << 11) | ((unsigned long long)integer << 63);
+    else if (mant != 0) {
+      /* Denormal when stored as a 64 bit double, but becomes a normal when
+       * converted to 80 bit long double form. */
+      exp = 1 - 1023 + 16383;
+      while (!(mant & 0x0010000000000000ULL)) {
+        /* Normalize the mantissa. */
+        mant <<= 1;
+        exp--;
+      }
+      topbit = 1; /* The top bit, which is implicit in the 64 bit form. */
+    }
+    x.__pformat_fpreg_mantissa = (mant << 11) | ((unsigned long long)topbit << 63);
     x.__pformat_fpreg_exponent = exp | (signbit << 15);
   }
-  else
-    k = __fpclassifyl( x.__pformat_fpreg_ldouble_t );
 
+  return x;
+}
+
+static
+char *__pformat_cvt( int mode, long double val, int nd, int *dp, int *sign )
+{
+  /* Helper function, derived from David M. Gay's `g_xfmt()', calling
+   * his `__gdtoa()' function in a manner to provide extended precision
+   * replacements for `ecvt()' and `fcvt()'.
+   */
+  int k; unsigned int e = 0; char *ep;
+  static FPI fpi = { 64, 1-16383-64+1, 32766-16383-64+1, FPI_Round_near, 0, 14 /* Int_max */ };
+  __pformat_fpreg_t x = init_fpreg_ldouble( val );
+
+  k = __fpclassifyl( val );
 
   /* Classify the argument into an appropriate `__gdtoa()' category...
    */
@@ -1130,8 +1149,7 @@ char *__pformat_ecvt( long double x, int precision, int *dp, int *sign )
   /* A convenience wrapper for the above...
    * it emulates `ecvt()', but takes a `long double' argument.
    */
-  __pformat_fpreg_t z; z.__pformat_fpreg_ldouble_t = x;
-  return __pformat_cvt( 2, z, precision, dp, sign );
+  return __pformat_cvt( 2, x, precision, dp, sign );
 }
 
 static
@@ -1140,8 +1158,7 @@ char *__pformat_fcvt( long double x, int precision, int *dp, int *sign )
   /* A convenience wrapper for the above...
    * it emulates `fcvt()', but takes a `long double' argument.
    */
-  __pformat_fpreg_t z; z.__pformat_fpreg_ldouble_t = x;
-  return __pformat_cvt( 3, z, precision, dp, sign );
+  return __pformat_cvt( 3, x, precision, dp, sign );
 }
 
 /* The following are required, to clean up the `__gdtoa()' memory pool,
@@ -1218,7 +1235,7 @@ void __pformat_emit_radix_point( __pformat_t *stream )
      * establish a multibyte to `wchar_t' converter...
      */
     int len; wchar_t rpchr; mbstate_t state;
-    
+
     /* Initialise the conversion state...
      */
     memset( &state, 0, sizeof( state ) );
@@ -1259,7 +1276,7 @@ void __pformat_emit_radix_point( __pformat_t *stream )
        */
       char *p = buf;
       while( len-- > 0 )
-	__pformat_putc( *p++, stream );
+        __pformat_putc( *p++, stream );
     }
 
     else
@@ -1290,7 +1307,7 @@ void __pformat_emit_numeric_value( int c, __pformat_t *stream )
     {
       wchar_t wcs;
       if ((wcs = stream->thousands_chr) != 0)
-	__pformat_wputchars (&wcs, 1, stream);
+        __pformat_wputchars (&wcs, 1, stream);
     }
   else
     /* and passing all other characters through, unmodified.
@@ -1468,8 +1485,8 @@ void __pformat_emit_float( int sign, char *value, int len, __pformat_t *stream )
       __pformat_putc( *value ? *value++ : '0', stream);
       --len;
       if (len != 0 && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0
-	  && (len % 3) == 0)
-	__pformat_wputchars (&stream->thousands_chr, 1, stream);
+          && (len % 3) == 0)
+        __pformat_wputchars (&stream->thousands_chr, 1, stream);
     }
     while (len > 0);
   }
@@ -1539,7 +1556,7 @@ void __pformat_emit_efloat( int sign, char *value, int e, __pformat_t *stream )
    */
   if( stream->width > (exp_width += 2) )
     stream->width -= exp_width;
-  
+
   else
     /* ignoring the field width specification, if insufficient.
      */
@@ -1587,7 +1604,7 @@ void __pformat_float( long double x, __pformat_t *stream )
    * output in fixed point format.
    */
   int sign, intlen; char *value;
- 
+
   /* Establish the precision for the displayed value, defaulting to six
    * digits following the decimal point, if not explicitly specified.
    */
@@ -1847,7 +1864,7 @@ void __pformat_efloat( long double x, __pformat_t *stream )
    * output in floating point format.
    */
   int sign, intlen; char *value;
- 
+
   /* Establish the precision for the displayed value, defaulting to six
    * digits following the decimal point, if not explicitly specified.
    */
@@ -1885,7 +1902,7 @@ void __pformat_gfloat( long double x, __pformat_t *stream )
    * fixed or floating point format.
    */
   int sign, intlen; char *value;
- 
+
   /* Establish the precision for the displayed value, defaulting to
    * six significant digits, if not explicitly specified...
    */
@@ -1923,7 +1940,7 @@ void __pformat_gfloat( long double x, __pformat_t *stream )
        * the balance following it...
        */
       stream->precision -= intlen;
-    
+
     else
       /* The `#' flag is not in effect...
        * Here we adjust the precision to accommodate all digits which
@@ -1932,12 +1949,12 @@ void __pformat_gfloat( long double x, __pformat_t *stream )
        */
       if( ((stream->precision = strlen( value ) - intlen) < 0)
         /*
-	 * This may require a compensating adjustment to the field
-	 * width, to accommodate significant trailing zeros, which
-	 * precede the radix point...
-	 */
+         * This may require a compensating adjustment to the field
+         * width, to accommodate significant trailing zeros, which
+         * precede the radix point...
+         */
       && (stream->width > 0)  )
-	stream->width += stream->precision;
+        stream->width += stream->precision;
 
     /* Now, we format the result as any other fixed point value.
      */
@@ -1996,6 +2013,17 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
   char buf[18 + 6], *p = buf;
   __pformat_intarg_t exponent; short exp_width = 2;
 
+  if (value.__pformat_fpreg_mantissa != 0 ||
+     value.__pformat_fpreg_exponent != 0)
+  {
+    /* Reduce the exponent since the leading digit emited will start at
+     * the 4th bit from the highest order bit instead, the later being
+     * the leading digit of the floating point. Don't do this adjustment
+     * if the value is an actual zero.
+     */
+    value.__pformat_fpreg_exponent -= 3;
+  }
+
   /* The mantissa field of the argument value representation can
    * accommodate at most 16 hexadecimal digits, of which one will
    * be placed before the radix point, leaving at most 15 digits
@@ -2010,15 +2038,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
      * for exactly one digit discarded, shifting 4 bits per
      * digit, with up to 14 additional digits, to consume the
      * full availability of 15 precision digits).
-     *
-     * However, before we perform the rounding operation, we
-     * normalise the mantissa, shifting it to the left by as many
-     * bit positions may be necessary, until its highest order bit
-     * is set, thus preserving the maximum number of bits in the
-     * rounded result as possible.
-     */
-    while( value.__pformat_fpreg_mantissa < (LLONG_MAX + 1ULL) )
-      value.__pformat_fpreg_mantissa <<= 1;
+     */
 
     /* We then shift the mantissa one bit position back to the
      * right, to guard against possible overflow when the rounding
@@ -2041,11 +2061,15 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
       value.__pformat_fpreg_mantissa <<= 1;
 
     else
+    {
       /* Otherwise the rounding adjustment would have overflowed,
        * so the carry has already filled the vacated bit; the effect
-       * of this is equivalent to an increment of the exponent.
+       * of this is equivalent to an increment of the exponent. We will
+       * discard a whole digit to match glibc's behavior.
        */
-      value.__pformat_fpreg_exponent++;
+      value.__pformat_fpreg_exponent += 4;
+      value.__pformat_fpreg_mantissa >>= 3;
+    }
 
     /* We now complete the rounding to the required precision, by
      * shifting the unwanted digits out, from the right hand end of
@@ -2054,71 +2078,63 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
     value.__pformat_fpreg_mantissa >>= 4 * (15 - stream->precision);
   }
 
-  /* Encode the significant digits of the mantissa in hexadecimal
-   * ASCII notation, ready for transfer to the output stream...
+  /* Don't print anything if mantissa is zero unless we have to satisfy
+   * desired precision.
    */
-  while( value.__pformat_fpreg_mantissa )
+  if( value.__pformat_fpreg_mantissa || stream->precision > 0 )
   {
-    /* taking the rightmost digit in each pass...
+    /* Encode the significant digits of the mantissa in hexadecimal
+     * ASCII notation, ready for transfer to the output stream...
      */
-    unsigned c = value.__pformat_fpreg_mantissa & 0xF;
-    if( c == value.__pformat_fpreg_mantissa)
+    for( int i=stream->precision >= 15 || stream->precision < 0 ? 16 : stream->precision + 1; i>0; --i )
     {
-      /* inserting the radix point, when we reach the last,
-       * (i.e. the most significant digit), unless we found no
-       * less significant digits, with no mandatory radix point
-       * inclusion, and no additional required precision...
+      /* taking the rightmost digit in each pass...
        */
-      if( (p > buf)
-      ||  (stream->flags & PFORMAT_HASHED) || (stream->precision > 0)  )
+      unsigned c = value.__pformat_fpreg_mantissa & 0xF;
+      if( i == 1 )
       {
-	/*
-	 * Internally, we represent the radix point as an ASCII '.';
-	 * we will replace it with any locale specific alternative,
-	 * at the time of transfer to the ultimate destination.
-	 */
-	*p++ = '.';
+        /* inserting the radix point, when we reach the last,
+         * (i.e. the most significant digit), unless we found no
+         * less significant digits, with no mandatory radix point
+         * inclusion, and no additional required precision...
+         */
+        if( (p > buf)
+        ||  (stream->flags & PFORMAT_HASHED) || (stream->precision > 0)  )
+        {
+          /*
+           * Internally, we represent the radix point as an ASCII '.';
+           * we will replace it with any locale specific alternative,
+           * at the time of transfer to the ultimate destination.
+           */
+          *p++ = '.';
+        }
       }
 
-      /* If the most significant hexadecimal digit of the encoded
-       * output value is greater than one, then the indicated value
-       * will appear too large, by an additional binary exponent
-       * corresponding to the number of higher order bit positions
-       * which it occupies...
-       */
-      while( value.__pformat_fpreg_mantissa > 1 )
+      else if( stream->precision > 0 )
+        /*
+        * we have not yet fulfilled the desired precision,
+        * and we have not yet found the most significant digit,
+        * so account for the current digit, within the field
+        * width required to meet the specified precision.
+        */
+        stream->precision--;
+
+      if( (c > 0) || (p > buf) || (stream->precision >= 0) )
       {
-	/* so reduce the exponent value to compensate...
-	 */
-	value.__pformat_fpreg_exponent--;
-	value.__pformat_fpreg_mantissa >>= 1;
+        /*
+         * Ignoring insignificant trailing zeros, (unless required to
+         * satisfy specified precision), store the current encoded digit
+         * into the pending output buffer, in LIFO order, and using the
+         * appropriate case for digits in the `A'..`F' range.
+         */
+        *p++ = c > 9 ? (c - 10 + 'A') | (stream->flags & PFORMAT_XCASE) : c + '0';
       }
-    }
-
-    else if( stream->precision > 0 )
-      /*
-       * we have not yet fulfilled the desired precision,
-       * and we have not yet found the most significant digit,
-       * so account for the current digit, within the field
-       * width required to meet the specified precision.
-       */
-      stream->precision--;
-
-    if( (c > 0) || (p > buf) || (stream->precision >= 0) )
-    {
-      /*
-       * Ignoring insignificant trailing zeros, (unless required to
-       * satisfy specified precision), store the current encoded digit
-       * into the pending output buffer, in LIFO order, and using the
-       * appropriate case for digits in the `A'..`F' range.
+      /* Shift out the current digit, (4-bit logical shift right),
+       * to align the next more significant digit to be extracted,
+       * and encoded in the next pass.
        */
-      *p++ = c > 9 ? (c - 10 + 'A') | (stream->flags & PFORMAT_XCASE) : c + '0';
+      value.__pformat_fpreg_mantissa >>= 4;
     }
-    /* Shift out the current digit, (4-bit logical shift right),
-     * to align the next more significant digit to be extracted,
-     * and encoded in the next pass.
-     */
-    value.__pformat_fpreg_mantissa >>= 4;
   }
 
   if( p == buf )
@@ -2169,7 +2185,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
       min_width++;
       exp_width++;
     }
-  
+
     if( stream->width > min_width )
     {
       /* When specified field width exceeds the minimum required,
@@ -2180,8 +2196,8 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
       /* and then emit any required left side padding spaces.
        */
       if( (stream->flags & PFORMAT_JUSTIFY) == 0 )
-	while( stream->width-- > 0 )
-	  __pformat_putc( '\x20', stream );
+        while( stream->width-- > 0 )
+          __pformat_putc( '\x20', stream );
     }
 
     else
@@ -2215,7 +2231,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
    */
   __pformat_putc( '0', stream );
   __pformat_putc( 'X' | (stream->flags & PFORMAT_XCASE), stream );
-  
+
   /* If the `0' flag is in effect...
    * Zero padding, to fill out the field, goes here...
    */
@@ -2259,7 +2275,69 @@ void __pformat_xldouble( long double x, __pformat_t *stream )
    * value specified as `long double' type).
    */
   unsigned sign_bit = 0;
-  __pformat_fpreg_t z; z.__pformat_fpreg_ldouble_t = x;
+  __pformat_fpreg_t z = init_fpreg_ldouble( x );
+
+  /* First check for NaN; it is emitted unsigned...
+   */
+  if( isnan( x ) )
+    __pformat_emit_inf_or_nan( sign_bit, "NaN", stream );
+
+  else
+  { /* Capture the sign bit up-front, so we can show it correctly
+     * even when the argument value is zero or infinite.
+     */
+    if( (sign_bit = (z.__pformat_fpreg_exponent & 0x8000)) != 0 )
+      stream->flags |= PFORMAT_NEGATIVE;
+
+    /* Check for infinity, (positive or negative)...
+     */
+    if( isinf( x ) )
+      /*
+       * displaying the appropriately signed indicator,
+       * when appropriate.
+       */
+      __pformat_emit_inf_or_nan( sign_bit, "Inf", stream );
+
+    else
+    { /* The argument value is a representable number...
+       * extract the effective value of the biased exponent...
+       */
+      z.__pformat_fpreg_exponent &= 0x7FFF;
+      if( z.__pformat_fpreg_exponent == 0 )
+      {
+        /* A biased exponent value of zero means either a
+         * true zero value, if the mantissa field also has
+         * a zero value, otherwise...
+         */
+        if( z.__pformat_fpreg_mantissa != 0 )
+        {
+          /* ...this mantissa represents a subnormal value.
+           */
+          z.__pformat_fpreg_exponent = 1 - 0x3FFF;
+        }
+      }
+      else
+        /* This argument represents a non-zero normal number;
+         * eliminate the bias from the exponent...
+         */
+        z.__pformat_fpreg_exponent -= 0x3FFF;
+
+      /* Finally, hand the adjusted representation off to the
+       * generalised hexadecimal floating point format handler...
+       */
+      __pformat_emit_xfloat( z, stream );
+    }
+  }
+}
+
+static
+void __pformat_xdouble( double x, __pformat_t *stream )
+{
+  /* Handler for `%la' and `%lA' format specifiers, (with argument
+   * value specified as `double' type).
+   */
+  unsigned sign_bit = 0;
+  __pformat_fpreg_t z = init_fpreg_ldouble( (long double)x );
 
   /* First check for NaN; it is emitted unsigned...
    */
@@ -2287,31 +2365,40 @@ void __pformat_xldouble( long double x, __pformat_t *stream )
        * extract the effective value of the biased exponent...
        */
       z.__pformat_fpreg_exponent &= 0x7FFF;
+
+      /* If the double value was a denormalized number, it might have been renormalized by
+       * the conversion to long double. We will redenormalize it.
+       */
+      if( z.__pformat_fpreg_exponent != 0 && z.__pformat_fpreg_exponent <= (0x3FFF - 0x3FF) )
+      {
+        int shifted = (0x3FFF - 0x3FF) - z.__pformat_fpreg_exponent + 1;
+        z.__pformat_fpreg_mantissa >>= shifted;
+        z.__pformat_fpreg_exponent += shifted;
+      }
+
       if( z.__pformat_fpreg_exponent == 0 )
       {
-	/* A biased exponent value of zero means either a
-	 * true zero value, if the mantissa field also has
-	 * a zero value, otherwise...
-	 */
-	if( z.__pformat_fpreg_mantissa != 0 )
-	{
-	  /* ...this mantissa represents a subnormal value;
-	   * adjust the exponent, while shifting the mantissa
-	   * to the left, until its leading bit is 1.
-	   */
-	  z.__pformat_fpreg_exponent = 1-0x3FFF;
-	  while( (z.__pformat_fpreg_mantissa & (LLONG_MAX + 1ULL)) == 0 )
-	  {
-	    z.__pformat_fpreg_mantissa <<= 1;
-	    --z.__pformat_fpreg_exponent;
-	  }
-	}
+        /* A biased exponent value of zero means either a
+         * true zero value, if the mantissa field also has
+         * a zero value, otherwise...
+         */
+        if( z.__pformat_fpreg_mantissa != 0 )
+        {
+          /* ...this mantissa represents a subnormal value.
+           */
+          z.__pformat_fpreg_exponent = 1 - 0x3FF + 3;
+        }
       }
       else
-	/* This argument represents a non-zero normal number;
-	 * eliminate the bias from the exponent...
-	 */
-	z.__pformat_fpreg_exponent -= 0x3FFF;
+        /* This argument represents a non-zero normal number;
+         * eliminate the bias from the exponent...
+         */
+        z.__pformat_fpreg_exponent -= 0x3FFF - 3;
+
+      /* Shift the mantissa so the leading 4 bits digit is 0 or 1.
+       * The exponent was also adjusted by 3 previously.
+       */
+      z.__pformat_fpreg_mantissa >>= 3;
 
       /* Finally, hand the adjusted representation off to the
        * generalised hexadecimal floating point format handler...
@@ -2332,17 +2419,17 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
     /* Create and initialise a format control block
      * for this output request.
      */
-    dest,					/* output goes to here        */
-    flags &= PFORMAT_TO_FILE | PFORMAT_NOLIMIT,	/* only these valid initially */
-    PFORMAT_IGNORE,				/* no field width yet         */
-    PFORMAT_IGNORE,				/* nor any precision spec     */
-    PFORMAT_RPINIT,				/* radix point uninitialised  */
-    (wchar_t)(0),				/* leave it unspecified       */
+    dest,                                       /* output goes to here        */
+    flags &= PFORMAT_TO_FILE | PFORMAT_NOLIMIT, /* only these valid initially */
+    PFORMAT_IGNORE,                             /* no field width yet         */
+    PFORMAT_IGNORE,                             /* nor any precision spec     */
+    PFORMAT_RPINIT,                             /* radix point uninitialised  */
+    (wchar_t)(0),                               /* leave it unspecified       */
     0,
-    (wchar_t)(0),				/* leave it unspecified	      */
-    0,						/* zero output char count     */
-    max,					/* establish output limit     */
-    -1						/* exponent chars preferred;
+    (wchar_t)(0),                               /* leave it unspecified       */
+    0,                                          /* zero output char count     */
+    max,                                        /* establish output limit     */
+    -1                                          /* exponent chars preferred;
                                                    -1 means to be determined. */
   };
 
@@ -2390,793 +2477,794 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
 
       while( *fmt )
       {
-	switch( c = *fmt++ )
-	{
-	  /* Data type specifiers...
-	   * All are terminal, so exit the conversion spec parsing loop
-	   * with a `goto format_scan', thus resuming at the outer level
-	   * in the regular format string parser.
-	   */
-	  case '%':
-	    /*
-	     * Not strictly a data type specifier...
-	     * it simply converts as a literal `%' character.
-	     *
-	     * FIXME: should we require this to IMMEDIATELY follow the
-	     * initial `%' of the "conversion spec"?  (glibc `printf()'
-	     * on GNU/Linux does NOT appear to require this, but POSIX
-	     * and SUSv3 do seem to demand it).
-	     */
+        switch( c = *fmt++ )
+        {
+          /* Data type specifiers...
+           * All are terminal, so exit the conversion spec parsing loop
+           * with a `goto format_scan', thus resuming at the outer level
+           * in the regular format string parser.
+           */
+          case '%':
+            /*
+             * Not strictly a data type specifier...
+             * it simply converts as a literal `%' character.
+             *
+             * FIXME: should we require this to IMMEDIATELY follow the
+             * initial `%' of the "conversion spec"?  (glibc `printf()'
+             * on GNU/Linux does NOT appear to require this, but POSIX
+             * and SUSv3 do seem to demand it).
+             */
     #ifndef __BUILD_WIDEAPI
-	    __pformat_putc( c, &stream );
+            __pformat_putc( c, &stream );
     #else
         stream.width = stream.precision = PFORMAT_IGNORE;
         __pformat_wputchars( L"%", 1, &stream );
     #endif
-	    goto format_scan;
-
-	  case 'C':
-	    /*
-	     * Equivalent to `%lc'; set `length' accordingly,
-	     * and simply fall through.
-	     */
-	    length = PFORMAT_LENGTH_LONG;
-
-	  case 'c':
-	    /*
-	     * Single, (or single multibyte), character output...
-	     *
-	     * We handle these by copying the argument into our local
-	     * `argval' buffer, and then we pass the address of that to
-	     * either `__pformat_putchars()' or `__pformat_wputchars()',
-	     * as appropriate, effectively formatting it as a string of
-	     * the appropriate type, with a length of one.
-	     *
-	     * A side effect of this method of handling character data
-	     * is that, if the user sets a precision of zero, then no
-	     * character is actually emitted; we don't want that, so we
-	     * forcibly override any user specified precision.
-	     */
-	    stream.precision = PFORMAT_IGNORE;
-
-	    /* Now we invoke the appropriate format handler...
-	     */
-	    if( (length == PFORMAT_LENGTH_LONG)
-	    ||  (length == PFORMAT_LENGTH_LLONG)  )
-	    {
-	      /* considering any `long' type modifier as a reference to
-	       * `wchar_t' data, (which is promoted to an `int' argument)...
-	       */
-	      wchar_t iargval = (wchar_t)(va_arg( argv, int ));
-	      __pformat_wputchars( &iargval, 1, &stream );
-	    }
-	    else
-	    { /* while anything else is simply taken as `char', (which
-	       * is also promoted to an `int' argument)...
-	       */
-	      argval.__pformat_uchar_t = (unsigned char)(va_arg( argv, int ));
-	      __pformat_putchars( (char *)(&argval), 1, &stream );
-	    }
-	    goto format_scan;
-
-	  case 'S':
-	    /*
-	     * Equivalent to `%ls'; set `length' accordingly,
-	     * and simply fall through.
-	     */
-	    length = PFORMAT_LENGTH_LONG;
-
-	  case 's':
-	    if( (length == PFORMAT_LENGTH_LONG)
-	         || (length == PFORMAT_LENGTH_LLONG))
-	    {
-	      /* considering any `long' type modifier as a reference to
-	       * a `wchar_t' string...
-	       */
-	      __pformat_wcputs( va_arg( argv, wchar_t * ), &stream );
-	    }
-	    else
-	      /* This is normal string output;
-	       * we simply invoke the appropriate handler...
-	       */
-	      __pformat_puts( va_arg( argv, char * ), &stream );
-	    goto format_scan;
-	  case 'm': /* strerror (errno)  */
-	    __pformat_puts (strerror (saved_errno), &stream);
-	    goto format_scan;
-
-	  case 'o':
-	  case 'u':
-	  case 'x':
-	  case 'X':
-	    /*
-	     * Unsigned integer values; octal, decimal or hexadecimal format...
-	     */
+            goto format_scan;
+
+          case 'C':
+            /*
+             * Equivalent to `%lc'; set `length' accordingly,
+             * and simply fall through.
+             */
+            length = PFORMAT_LENGTH_LONG;
+
+          case 'c':
+            /*
+             * Single, (or single multibyte), character output...
+             *
+             * We handle these by copying the argument into our local
+             * `argval' buffer, and then we pass the address of that to
+             * either `__pformat_putchars()' or `__pformat_wputchars()',
+             * as appropriate, effectively formatting it as a string of
+             * the appropriate type, with a length of one.
+             *
+             * A side effect of this method of handling character data
+             * is that, if the user sets a precision of zero, then no
+             * character is actually emitted; we don't want that, so we
+             * forcibly override any user specified precision.
+             */
+            stream.precision = PFORMAT_IGNORE;
+
+            /* Now we invoke the appropriate format handler...
+             */
+            if( (length == PFORMAT_LENGTH_LONG)
+            ||  (length == PFORMAT_LENGTH_LLONG)  )
+            {
+              /* considering any `long' type modifier as a reference to
+               * `wchar_t' data, (which is promoted to an `int' argument)...
+               */
+              wchar_t iargval = (wchar_t)(va_arg( argv, int ));
+              __pformat_wputchars( &iargval, 1, &stream );
+            }
+            else
+            { /* while anything else is simply taken as `char', (which
+               * is also promoted to an `int' argument)...
+               */
+              argval.__pformat_uchar_t = (unsigned char)(va_arg( argv, int ));
+              __pformat_putchars( (char *)(&argval), 1, &stream );
+            }
+            goto format_scan;
+
+          case 'S':
+            /*
+             * Equivalent to `%ls'; set `length' accordingly,
+             * and simply fall through.
+             */
+            length = PFORMAT_LENGTH_LONG;
+
+          case 's':
+            if( (length == PFORMAT_LENGTH_LONG)
+                 || (length == PFORMAT_LENGTH_LLONG))
+            {
+              /* considering any `long' type modifier as a reference to
+               * a `wchar_t' string...
+               */
+              __pformat_wcputs( va_arg( argv, wchar_t * ), &stream );
+            }
+            else
+              /* This is normal string output;
+               * we simply invoke the appropriate handler...
+               */
+              __pformat_puts( va_arg( argv, char * ), &stream );
+            goto format_scan;
+          case 'm': /* strerror (errno)  */
+            __pformat_puts (strerror (saved_errno), &stream);
+            goto format_scan;
+
+          case 'o':
+          case 'u':
+          case 'x':
+          case 'X':
+            /*
+             * Unsigned integer values; octal, decimal or hexadecimal format...
+             */
+            stream.flags &= ~PFORMAT_POSITIVE;
 #if __ENABLE_PRINTF128
         argval.__pformat_u128_t.t128.digits[1] = 0LL; /* no sign extend needed */
-	    if( length == PFORMAT_LENGTH_LLONG128 )
-	      argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 );
-	    else
+            if( length == PFORMAT_LENGTH_LLONG128 )
+              argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 );
+            else
 #endif
         if( length == PFORMAT_LENGTH_LLONG ) {
-	      /*
-	       * with an `unsigned long long' argument, which we
-	       * process `as is'...
-	       */
-	      argval.__pformat_ullong_t = va_arg( argv, unsigned long long );
-
-	    } else if( length == PFORMAT_LENGTH_LONG ) {
-	      /*
-	       * or with an `unsigned long', which we promote to
-	       * `unsigned long long'...
-	       */
-	      argval.__pformat_ullong_t = va_arg( argv, unsigned long );
-
-	    } else
-	    { /* or for any other size, which will have been promoted
-	       * to `unsigned int', we select only the appropriately sized
-	       * least significant segment, and again promote to the same
-	       * size as `unsigned long long'...
-	       */ 
-	      argval.__pformat_ullong_t = va_arg( argv, unsigned int );
-	      if( length == PFORMAT_LENGTH_SHORT )
-		/*
-		 * from `unsigned short'...
-		 */
-		argval.__pformat_ullong_t = argval.__pformat_ushort_t;
-
-	      else if( length == PFORMAT_LENGTH_CHAR )
-		/*
-		 * or even from `unsigned char'...
-		 */
-		argval.__pformat_ullong_t = argval.__pformat_uchar_t;
-	    }
-
-	    /* so we can pass any size of argument to either of two
-	     * common format handlers...
-	     */
-	    if( c == 'u' )
-	      /*
-	       * depending on whether output is to be encoded in
-	       * decimal format...
-	       */
-	      __pformat_int( argval, &stream );
-
-	    else
-	      /* or in octal or hexadecimal format...
-	       */
-	      __pformat_xint( c, argval, &stream );
-
-	    goto format_scan;
-
-	  case 'd':
-	  case 'i':
-	    /*
-	     * Signed integer values; decimal format...
-	     * This is similar to `u', but must process `argval' as signed,
-	     * and be prepared to handle negative numbers.
-	     */
-	    stream.flags |= PFORMAT_NEGATIVE;
+              /*
+               * with an `unsigned long long' argument, which we
+               * process `as is'...
+               */
+              argval.__pformat_ullong_t = va_arg( argv, unsigned long long );
+
+            } else if( length == PFORMAT_LENGTH_LONG ) {
+              /*
+               * or with an `unsigned long', which we promote to
+               * `unsigned long long'...
+               */
+              argval.__pformat_ullong_t = va_arg( argv, unsigned long );
+
+            } else
+            { /* or for any other size, which will have been promoted
+               * to `unsigned int', we select only the appropriately sized
+               * least significant segment, and again promote to the same
+               * size as `unsigned long long'...
+               */
+              argval.__pformat_ullong_t = va_arg( argv, unsigned int );
+              if( length == PFORMAT_LENGTH_SHORT )
+                /*
+                 * from `unsigned short'...
+                 */
+                argval.__pformat_ullong_t = argval.__pformat_ushort_t;
+
+              else if( length == PFORMAT_LENGTH_CHAR )
+                /*
+                 * or even from `unsigned char'...
+                 */
+                argval.__pformat_ullong_t = argval.__pformat_uchar_t;
+            }
+
+            /* so we can pass any size of argument to either of two
+             * common format handlers...
+             */
+            if( c == 'u' )
+              /*
+               * depending on whether output is to be encoded in
+               * decimal format...
+               */
+              __pformat_int( argval, &stream );
+
+            else
+              /* or in octal or hexadecimal format...
+               */
+              __pformat_xint( c, argval, &stream );
+
+            goto format_scan;
+
+          case 'd':
+          case 'i':
+            /*
+             * Signed integer values; decimal format...
+             * This is similar to `u', but must process `argval' as signed,
+             * and be prepared to handle negative numbers.
+             */
+            stream.flags |= PFORMAT_NEGATIVE;
 #if __ENABLE_PRINTF128
-	    if( length == PFORMAT_LENGTH_LLONG128 ) {
-	      argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 );
+            if( length == PFORMAT_LENGTH_LLONG128 ) {
+              argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 );
           goto skip_sign; /* skip sign extend */
-	    } else
+            } else
 #endif
-	    if( length == PFORMAT_LENGTH_LLONG ){
-	      /*
-	       * The argument is a `long long' type...
-	       */
-	      argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long long );
-	    } else if( length == PFORMAT_LENGTH_LONG ) {
-	      /*
-	       * or here, a `long' type...
-	       */
-	      argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long );
-	    } else
-	    { /* otherwise, it's an `int' type...
-	       */
-	      argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, int );
-	      if( length == PFORMAT_LENGTH_SHORT )
-		/*
-		 * but it was promoted from a `short' type...
-		 */
-		argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_short_t;
-	      else if( length == PFORMAT_LENGTH_CHAR )
-		/*
-		 * or even from a `char' type...
-		 */
-		argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_char_t;
-	    }
-	    
-	    /* In any case, all share a common handler...
-	     */
+            if( length == PFORMAT_LENGTH_LLONG ){
+              /*
+               * The argument is a `long long' type...
+               */
+              argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long long );
+            } else if( length == PFORMAT_LENGTH_LONG ) {
+              /*
+               * or here, a `long' type...
+               */
+              argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long );
+            } else
+            { /* otherwise, it's an `int' type...
+               */
+              argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, int );
+              if( length == PFORMAT_LENGTH_SHORT )
+                /*
+                 * but it was promoted from a `short' type...
+                 */
+                argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_short_t;
+              else if( length == PFORMAT_LENGTH_CHAR )
+                /*
+                 * or even from a `char' type...
+                 */
+                argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_char_t;
+            }
+
+            /* In any case, all share a common handler...
+             */
         argval.__pformat_u128_t.t128.digits[1] = (argval.__pformat_llong_t < 0) ? -1LL : 0LL;
 #if __ENABLE_PRINTF128
         skip_sign:
 #endif
-	    __pformat_int( argval, &stream );
-	    goto format_scan;
-
-	  case 'p':
-	    /*
-	     * Pointer argument; format as hexadecimal, subject to...
-	     */
-	    if( (state == PFORMAT_INIT) && (stream.flags == flags) )
-	    {
-	      /* Here, the user didn't specify any particular
-	       * formatting attributes.  We must choose a default
-	       * which will be compatible with Microsoft's (broken)
-	       * scanf() implementation, (i.e. matching the default
-	       * used by MSVCRT's printf(), which appears to resemble
-	       * "%0.8X" for 32-bit pointers); in particular, we MUST
-	       * NOT adopt a GNU-like format resembling "%#x", because
-	       * Microsoft's scanf() will choke on the "0x" prefix.
-	       */
-	      stream.flags |= PFORMAT_ZEROFILL;
-	      stream.precision = 2 * sizeof( uintptr_t );
-	    }
-	    argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, uintptr_t );
-	    argval.__pformat_u128_t.t128.digits[1] = 0;
-	    __pformat_xint( 'x', argval, &stream );
-	    goto format_scan;
-
-	  case 'e':
-	    /*
-	     * Floating point format, with lower case exponent indicator
-	     * and lower case `inf' or `nan' representation when required;
-	     * select lower case mode, and simply fall through...
-	     */
-	    stream.flags |= PFORMAT_XCASE;
-
-	  case 'E':
-	    /*
-	     * Floating point format, with upper case exponent indicator
-	     * and upper case `INF' or `NAN' representation when required,
-	     * (or lower case for all of these, on fall through from above);
-	     * select lower case mode, and simply fall through...
-	     */
+            __pformat_int( argval, &stream );
+            goto format_scan;
+
+          case 'p':
+            /*
+             * Pointer argument; format as hexadecimal, subject to...
+             */
+            if( (state == PFORMAT_INIT) && (stream.flags == flags) )
+            {
+              /* Here, the user didn't specify any particular
+               * formatting attributes.  We must choose a default
+               * which will be compatible with Microsoft's (broken)
+               * scanf() implementation, (i.e. matching the default
+               * used by MSVCRT's printf(), which appears to resemble
+               * "%0.8X" for 32-bit pointers); in particular, we MUST
+               * NOT adopt a GNU-like format resembling "%#x", because
+               * Microsoft's scanf() will choke on the "0x" prefix.
+               */
+              stream.flags |= PFORMAT_ZEROFILL;
+              stream.precision = 2 * sizeof( uintptr_t );
+            }
+            argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, uintptr_t );
+            argval.__pformat_u128_t.t128.digits[1] = 0;
+            __pformat_xint( 'x', argval, &stream );
+            goto format_scan;
+
+          case 'e':
+            /*
+             * Floating point format, with lower case exponent indicator
+             * and lower case `inf' or `nan' representation when required;
+             * select lower case mode, and simply fall through...
+             */
+            stream.flags |= PFORMAT_XCASE;
+
+          case 'E':
+            /*
+             * Floating point format, with upper case exponent indicator
+             * and upper case `INF' or `NAN' representation when required,
+             * (or lower case for all of these, on fall through from above);
+             * select lower case mode, and simply fall through...
+             */
 #ifdef __ENABLE_DFP
-	    if( stream.flags & PFORMAT_DECIM32 )
-	      /* Is a 32bit decimal float */
-	      __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream );
-	    else if( stream.flags & PFORMAT_DECIM64 )
-	      /*
-	       * Is a 64bit decimal float
-	       */
-	      __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream );
-	    else if( stream.flags & PFORMAT_DECIM128 )
-	      /*
-	       * Is a 128bit decimal float
-	       */
-	      __pformat_efloat_decimal(va_arg( argv, _Decimal128 ), &stream );
-	    else
+            if( stream.flags & PFORMAT_DECIM32 )
+              /* Is a 32bit decimal float */
+              __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream );
+            else if( stream.flags & PFORMAT_DECIM64 )
+              /*
+               * Is a 64bit decimal float
+               */
+              __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream );
+            else if( stream.flags & PFORMAT_DECIM128 )
+              /*
+               * Is a 128bit decimal float
+               */
+              __pformat_efloat_decimal(va_arg( argv, _Decimal128 ), &stream );
+            else
 #endif /* __ENABLE_DFP */
-	    if( stream.flags & PFORMAT_LDOUBLE )
-	      /*
-	       * for a `long double' argument...
-	       */
-	      __pformat_efloat( va_arg( argv, long double ), &stream );
-
-	    else
-	      /* or just a `double', which we promote to `long double',
-	       * so the two may share a common format handler.
-	       */
-	      __pformat_efloat( (long double)(va_arg( argv, double )), &stream );
-
-	    goto format_scan;
-
-	  case 'f':
-	    /*
-	     * Fixed point format, using lower case for `inf' and
-	     * `nan', when appropriate; select lower case mode, and
-	     * simply fall through...
-	     */
-	    stream.flags |= PFORMAT_XCASE;
-
-	  case 'F':
-	    /*
-	     * Fixed case format using upper case, or lower case on
-	     * fall through from above, for `INF' and `NAN'...
-	     */
+            if( stream.flags & PFORMAT_LDOUBLE )
+              /*
+               * for a `long double' argument...
+               */
+              __pformat_efloat( va_arg( argv, long double ), &stream );
+
+            else
+              /* or just a `double', which we promote to `long double',
+               * so the two may share a common format handler.
+               */
+              __pformat_efloat( (long double)(va_arg( argv, double )), &stream );
+
+            goto format_scan;
+
+          case 'f':
+            /*
+             * Fixed point format, using lower case for `inf' and
+             * `nan', when appropriate; select lower case mode, and
+             * simply fall through...
+             */
+            stream.flags |= PFORMAT_XCASE;
+
+          case 'F':
+            /*
+             * Fixed case format using upper case, or lower case on
+             * fall through from above, for `INF' and `NAN'...
+             */
 #ifdef __ENABLE_DFP
-	    if( stream.flags & PFORMAT_DECIM32 )
-	      /* Is a 32bit decimal float */
-	      __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream );
-	    else if( stream.flags & PFORMAT_DECIM64 )
-	      /*
-	       * Is a 64bit decimal float
-	       */
-	      __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream );
-	    else if( stream.flags & PFORMAT_DECIM128 )
-	      /*
-	       * Is a 128bit decimal float
-	       */
-	      __pformat_float_decimal(va_arg( argv, _Decimal128 ), &stream );
-	    else
+            if( stream.flags & PFORMAT_DECIM32 )
+              /* Is a 32bit decimal float */
+              __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream );
+            else if( stream.flags & PFORMAT_DECIM64 )
+              /*
+               * Is a 64bit decimal float
+               */
+              __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream );
+            else if( stream.flags & PFORMAT_DECIM128 )
+              /*
+               * Is a 128bit decimal float
+               */
+              __pformat_float_decimal(va_arg( argv, _Decimal128 ), &stream );
+            else
 #endif /* __ENABLE_DFP */
-	    if( stream.flags & PFORMAT_LDOUBLE )
-	      /*
-	       * for a `long double' argument...
-	       */
-	      __pformat_float( va_arg( argv, long double ), &stream );
-
-	    else
-	      /* or just a `double', which we promote to `long double',
-	       * so the two may share a common format handler.
-	       */
-	      __pformat_float( (long double)(va_arg( argv, double )), &stream );
-
-	    goto format_scan;
-
-	  case 'g':
-	    /*
-	     * Generalised floating point format, with lower case
-	     * exponent indicator when required; select lower case
-	     * mode, and simply fall through...
-	     */
-	    stream.flags |= PFORMAT_XCASE;
-
-	  case 'G':
-	    /*
-	     * Generalised floating point format, with upper case,
-	     * or on fall through from above, with lower case exponent
-	     * indicator when required...
-	     */
+            if( stream.flags & PFORMAT_LDOUBLE )
+              /*
+               * for a `long double' argument...
+               */
+              __pformat_float( va_arg( argv, long double ), &stream );
+
+            else
+              /* or just a `double', which we promote to `long double',
+               * so the two may share a common format handler.
+               */
+              __pformat_float( (long double)(va_arg( argv, double )), &stream );
+
+            goto format_scan;
+
+          case 'g':
+            /*
+             * Generalised floating point format, with lower case
+             * exponent indicator when required; select lower case
+             * mode, and simply fall through...
+             */
+            stream.flags |= PFORMAT_XCASE;
+
+          case 'G':
+            /*
+             * Generalised floating point format, with upper case,
+             * or on fall through from above, with lower case exponent
+             * indicator when required...
+             */
 #ifdef __ENABLE_DFP
-	    if( stream.flags & PFORMAT_DECIM32 )
-	      /* Is a 32bit decimal float */
-	      __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream );
-	    else if( stream.flags & PFORMAT_DECIM64 )
-	      /*
-	       * Is a 64bit decimal float
-	       */
-	      __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream );
-	    else if( stream.flags & PFORMAT_DECIM128 )
-	      /*
-	       * Is a 128bit decimal float
-	       */
-	      __pformat_gfloat_decimal(va_arg( argv, _Decimal128 ), &stream );
-	    else
+            if( stream.flags & PFORMAT_DECIM32 )
+              /* Is a 32bit decimal float */
+              __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream );
+            else if( stream.flags & PFORMAT_DECIM64 )
+              /*
+               * Is a 64bit decimal float
+               */
+              __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream );
+            else if( stream.flags & PFORMAT_DECIM128 )
+              /*
+               * Is a 128bit decimal float
+               */
+              __pformat_gfloat_decimal(va_arg( argv, _Decimal128 ), &stream );
+            else
 #endif /* __ENABLE_DFP */
-	   if( stream.flags & PFORMAT_LDOUBLE )
-	      /*
-	       * for a `long double' argument...
-	       */
-	      __pformat_gfloat( va_arg( argv, long double ), &stream );
-
-	    else
-	      /* or just a `double', which we promote to `long double',
-	       * so the two may share a common format handler.
-	       */
-	      __pformat_gfloat( (long double)(va_arg( argv, double )), &stream );
-
-	    goto format_scan;
-
-	  case 'a':
-	    /*
-	     * Hexadecimal floating point format, with lower case radix
-	     * and exponent indicators; select the lower case mode, and
-	     * fall through...
-	     */
-	    stream.flags |= PFORMAT_XCASE;
-
-	  case 'A':
-	    /*
-	     * Hexadecimal floating point format; handles radix and
-	     * exponent indicators in either upper or lower case...
-	     */
-	    if( stream.flags & PFORMAT_LDOUBLE )
-	      /*
-	       * with a `long double' argument...
-	       */
-	      __pformat_xldouble( va_arg( argv, long double ), &stream );
-
-	    else
-	      /* or just a `double'.
-	       */
-	      __pformat_xldouble( (long double)(va_arg( argv, double )), &stream );
-
-	    goto format_scan;
-
-	  case 'n':
-	    /*
-	     * Save current output character count...
-	     */
-	    if( length == PFORMAT_LENGTH_CHAR )
-	      /*
-	       * to a signed `char' destination...
-	       */
-	      *va_arg( argv, char * ) = stream.count;
-
-	    else if( length == PFORMAT_LENGTH_SHORT )
-	      /*
-	       * or to a signed `short'...
-	       */
-	      *va_arg( argv, short * ) = stream.count;
-
-	    else if( length == PFORMAT_LENGTH_LONG )
-	      /*
-	       * or to a signed `long'...
-	       */
-	      *va_arg( argv, long * ) = stream.count;
-
-	    else if( length == PFORMAT_LENGTH_LLONG )
-	      /*
-	       * or to a signed `long long'...
-	       */
-	      *va_arg( argv, long long * ) = stream.count;
-
-	    else
-	      /*
-	       * or, by default, to a signed `int'.
-	       */
-	      *va_arg( argv, int * ) = stream.count;
-
-	    goto format_scan;
-
-	  /* Argument length modifiers...
-	   * These are non-terminal; each sets the format parser
-	   * into the PFORMAT_END state, and ends with a `break'.
-	   */
-	  case 'h':
-	    /*
-	     * Interpret the argument as explicitly of a `short'
-	     * or `char' data type, truncated from the standard
-	     * length defined for integer promotion.
-	     */
-	    if( *fmt == 'h' )
-	    {
-	      /* Modifier is `hh'; data type is `char' sized...
-	       * Skip the second `h', and set length accordingly.
-	       */
-	      ++fmt;
-	      length = PFORMAT_LENGTH_CHAR;
-	    }
-
-	    else
-	      /* Modifier is `h'; data type is `short' sized...
-	       */
-	      length = PFORMAT_LENGTH_SHORT;
-
-	    state = PFORMAT_END;
-	    break;
-
-	  case 'j':
-	    /*
-	     * Interpret the argument as being of the same size as
-	     * a `intmax_t' entity...
-	     */
-	    length = __pformat_arg_length( intmax_t );
-	    state = PFORMAT_END;
-	    break;
-	  
-#	  ifdef _WIN32
-
-	    case 'I':
-	      /*
-	       * The MSVCRT implementation of the printf() family of
-	       * functions explicitly uses...
-	       */
+           if( stream.flags & PFORMAT_LDOUBLE )
+              /*
+               * for a `long double' argument...
+               */
+              __pformat_gfloat( va_arg( argv, long double ), &stream );
+
+            else
+              /* or just a `double', which we promote to `long double',
+               * so the two may share a common format handler.
+               */
+              __pformat_gfloat( (long double)(va_arg( argv, double )), &stream );
+
+            goto format_scan;
+
+          case 'a':
+            /*
+             * Hexadecimal floating point format, with lower case radix
+             * and exponent indicators; select the lower case mode, and
+             * fall through...
+             */
+            stream.flags |= PFORMAT_XCASE;
+
+          case 'A':
+            /*
+             * Hexadecimal floating point format; handles radix and
+             * exponent indicators in either upper or lower case...
+             */
+            if( sizeof( double ) != sizeof( long double ) && stream.flags & PFORMAT_LDOUBLE )
+              /*
+               * with a `long double' argument...
+               */
+              __pformat_xldouble( va_arg( argv, long double ), &stream );
+
+            else
+              /* or just a `double'.
+               */
+              __pformat_xdouble( va_arg( argv, double ), &stream );
+
+            goto format_scan;
+
+          case 'n':
+            /*
+             * Save current output character count...
+             */
+            if( length == PFORMAT_LENGTH_CHAR )
+              /*
+               * to a signed `char' destination...
+               */
+              *va_arg( argv, char * ) = stream.count;
+
+            else if( length == PFORMAT_LENGTH_SHORT )
+              /*
+               * or to a signed `short'...
+               */
+              *va_arg( argv, short * ) = stream.count;
+
+            else if( length == PFORMAT_LENGTH_LONG )
+              /*
+               * or to a signed `long'...
+               */
+              *va_arg( argv, long * ) = stream.count;
+
+            else if( length == PFORMAT_LENGTH_LLONG )
+              /*
+               * or to a signed `long long'...
+               */
+              *va_arg( argv, long long * ) = stream.count;
+
+            else
+              /*
+               * or, by default, to a signed `int'.
+               */
+              *va_arg( argv, int * ) = stream.count;
+
+            goto format_scan;
+
+          /* Argument length modifiers...
+           * These are non-terminal; each sets the format parser
+           * into the PFORMAT_END state, and ends with a `break'.
+           */
+          case 'h':
+            /*
+             * Interpret the argument as explicitly of a `short'
+             * or `char' data type, truncated from the standard
+             * length defined for integer promotion.
+             */
+            if( *fmt == 'h' )
+            {
+              /* Modifier is `hh'; data type is `char' sized...
+               * Skip the second `h', and set length accordingly.
+               */
+              ++fmt;
+              length = PFORMAT_LENGTH_CHAR;
+            }
+
+            else
+              /* Modifier is `h'; data type is `short' sized...
+               */
+              length = PFORMAT_LENGTH_SHORT;
+
+            state = PFORMAT_END;
+            break;
+
+          case 'j':
+            /*
+             * Interpret the argument as being of the same size as
+             * a `intmax_t' entity...
+             */
+            length = __pformat_arg_length( intmax_t );
+            state = PFORMAT_END;
+            break;
+
+#         ifdef _WIN32
+
+            case 'I':
+              /*
+               * The MSVCRT implementation of the printf() family of
+               * functions explicitly uses...
+               */
 #ifdef __ENABLE_PRINTF128
-	      if( (fmt[0] == '1') && (fmt[1] == '2') && (fmt[2] == '8')){
-	        length = PFORMAT_LENGTH_LLONG128;
-	        fmt += 3;
-	      } else
+              if( (fmt[0] == '1') && (fmt[1] == '2') && (fmt[2] == '8')){
+                length = PFORMAT_LENGTH_LLONG128;
+                fmt += 3;
+              } else
 #endif
-	      if( (fmt[0] == '6') && (fmt[1] == '4') )
-	      {
-		/* I64' instead of `ll',
-		 * when referring to `long long' integer types...
-		 */
-		length = PFORMAT_LENGTH_LLONG;
-		fmt += 2;
-	      } else
-	      if( (fmt[0] == '3') && (fmt[1] == '2') )
-	      {
-		/* and `I32' instead of `l',
-		 * when referring to `long' integer types...
-		 */
-		length = PFORMAT_LENGTH_LONG;
-		fmt += 2;
-	      }
-
-	      else
-		/* or unqualified `I' instead of `t' or `z',
-		 * when referring to `ptrdiff_t' or `size_t' entities;
-		 * (we will choose to map it to `ptrdiff_t').
-		 */
-		length = __pformat_arg_length( ptrdiff_t );
-
-	      state = PFORMAT_END;
-	      break;
-
-#	  endif
-	  
+              if( (fmt[0] == '6') && (fmt[1] == '4') )
+              {
+                /* I64' instead of `ll',
+                 * when referring to `long long' integer types...
+                 */
+                length = PFORMAT_LENGTH_LLONG;
+                fmt += 2;
+              } else
+              if( (fmt[0] == '3') && (fmt[1] == '2') )
+              {
+                /* and `I32' instead of `l',
+                 * when referring to `long' integer types...
+                 */
+                length = PFORMAT_LENGTH_LONG;
+                fmt += 2;
+              }
+
+              else
+                /* or unqualified `I' instead of `t' or `z',
+                 * when referring to `ptrdiff_t' or `size_t' entities;
+                 * (we will choose to map it to `ptrdiff_t').
+                 */
+                length = __pformat_arg_length( ptrdiff_t );
+
+              state = PFORMAT_END;
+              break;
+
+#         endif
+
 #ifdef __ENABLE_DFP
-	  case 'H':
-	      stream.flags |= PFORMAT_DECIM32;
-	      state = PFORMAT_END;
-	      break;
-
-	  case 'D':
-	    /*
-	     * Interpret the argument as explicitly of a
-	     * `_Decimal64' or `_Decimal128' data type.
-	     */
-	    if( *fmt == 'D' )
-	    {
-	      /* Modifier is `DD'; data type is `_Decimal128' sized...
-	       * Skip the second `D', and set length accordingly.
-	       */
-	      ++fmt;
-	      stream.flags |= PFORMAT_DECIM128;
-	    }
-
-	    else
-	      /* Modifier is `D'; data type is `_Decimal64' sized...
-	       */
-	      stream.flags |= PFORMAT_DECIM64;
-
-	      state = PFORMAT_END;
-	      break;
+          case 'H':
+              stream.flags |= PFORMAT_DECIM32;
+              state = PFORMAT_END;
+              break;
+
+          case 'D':
+            /*
+             * Interpret the argument as explicitly of a
+             * `_Decimal64' or `_Decimal128' data type.
+             */
+            if( *fmt == 'D' )
+            {
+              /* Modifier is `DD'; data type is `_Decimal128' sized...
+               * Skip the second `D', and set length accordingly.
+               */
+              ++fmt;
+              stream.flags |= PFORMAT_DECIM128;
+            }
+
+            else
+              /* Modifier is `D'; data type is `_Decimal64' sized...
+               */
+              stream.flags |= PFORMAT_DECIM64;
+
+              state = PFORMAT_END;
+              break;
 #endif /* __ENABLE_DFP */
-	  case 'l':
-	    /*
-	     * Interpret the argument as explicitly of a
-	     * `long' or `long long' data type.
-	     */
-	    if( *fmt == 'l' )
-	    {
-	      /* Modifier is `ll'; data type is `long long' sized...
-	       * Skip the second `l', and set length accordingly.
-	       */
-	      ++fmt;
-	      length = PFORMAT_LENGTH_LLONG;
-	    }
-
-	    else
-	      /* Modifier is `l'; data type is `long' sized...
-	       */
-	      length = PFORMAT_LENGTH_LONG;
-
-	    state = PFORMAT_END;
-	    break;
-
-	  case 'L':
-	    /*
-	     * Identify the appropriate argument as a `long double',
-	     * when associated with `%a', `%A', `%e', `%E', `%f', `%F',
-	     * `%g' or `%G' format specifications.
-	     */
-	    stream.flags |= PFORMAT_LDOUBLE;
-	    state = PFORMAT_END;
-	    break;
-	  
-	  case 't':
-	    /*
-	     * Interpret the argument as being of the same size as
-	     * a `ptrdiff_t' entity...
-	     */
-	    length = __pformat_arg_length( ptrdiff_t );
-	    state = PFORMAT_END;
-	    break;
-	  
-	  case 'z':
-	    /*
-	     * Interpret the argument as being of the same size as
-	     * a `size_t' entity...
-	     */
-	    length = __pformat_arg_length( size_t );
-	    state = PFORMAT_END;
-	    break;
-	  
-	  /* Precision indicator...
-	   * May appear once only; it must precede any modifier
-	   * for argument length, or any data type specifier.
-	   */
-	  case '.':
-	    if( state < PFORMAT_GET_PRECISION )
-	    {
-	      /* We haven't seen a precision specification yet,
-	       * so initialise it to zero, (in case no digits follow),
-	       * and accept any following digits as the precision.
-	       */
-	      stream.precision = 0;
-	      width_spec = &stream.precision;
-	      state = PFORMAT_GET_PRECISION;
-	    }
-
-	    else
-	      /* We've already seen a precision specification,
-	       * so this is just junk; proceed to end game.
-	       */
-	      state = PFORMAT_END;
-
-	    /* Either way, we must not fall through here.
-	     */
-	    break;
-
-	  /* Variable field width, or precision specification,
-	   * derived from the argument list...
-	   */
-	  case '*':
-	    /*
-	     * When this appears...
-	     */
-	    if(   width_spec
-	    &&  ((state == PFORMAT_INIT) || (state == PFORMAT_GET_PRECISION)) )
-	    {
-	      /* in proper context; assign to field width
-	       * or precision, as appropriate.
-	       */
-	      if( (*width_spec = va_arg( argv, int )) < 0 )
-	      {
-		/* Assigned value was negative...
-		 */
-		if( state == PFORMAT_INIT )
-		{
-		  /* For field width, this is equivalent to
-		   * a positive value with the `-' flag...
-		   */
-		  stream.flags |= PFORMAT_LJUSTIFY;
-		  stream.width = -stream.width;
-		}
-
-		else
-		  /* while as a precision specification,
-		   * it should simply be ignored.
-		   */
-		  stream.precision = PFORMAT_IGNORE;
-	      }
-	    }
-
-	    else
-	      /* out of context; give up on width and precision
-	       * specifications for this conversion.
-	       */
-	      state = PFORMAT_END;
-
-	    /* Mark as processed...
-	     * we must not see `*' again, in this context.
-	     */
-	    width_spec = NULL;
-	    break;
-
-	  /* Formatting flags...
-	   * Must appear while in the PFORMAT_INIT state,
-	   * and are non-terminal, so again, end with `break'.
-	   */
-	  case '#':
-	    /*
-	     * Select alternate PFORMAT_HASHED output style.
-	     */
-	    if( state == PFORMAT_INIT )
-	      stream.flags |= PFORMAT_HASHED;
-	    break;
-
-	  case '+':
-	    /*
-	     * Print a leading sign with numeric output,
-	     * for both positive and negative values.
-	     */
-	    if( state == PFORMAT_INIT )
-	      stream.flags |= PFORMAT_POSITIVE;
-	    break;
-
-	  case '-':
-	    /*
-	     * Select left justification of displayed output
-	     * data, within the output field width, instead of
-	     * the default flush right justification.
-	     */
-	    if( state == PFORMAT_INIT )
-	      stream.flags |= PFORMAT_LJUSTIFY;
-	    break;
-
-	    case '\'':
-	      /*
-	       * This is an XSI extension to the POSIX standard,
-	       * which we do not support, at present.
-	       */
-	      if (state == PFORMAT_INIT)
-	      {
-		stream.flags |= PFORMAT_GROUPED; /* $$$$ */
-		int len; wchar_t rpchr; mbstate_t cstate;
-		memset (&cstate, 0, sizeof(state));
-		if ((len = mbrtowc( &rpchr, localeconv()->thousands_sep, 16, &cstate)) > 0)
-		    stream.thousands_chr = rpchr;
-	  	stream.thousands_chr_len = len;
-	      }
-	      break;
-
-	  case '\x20':
-	    /*
-	     * Reserve a single space, within the output field,
-	     * for display of the sign of signed data; this will
-	     * be occupied by the minus sign, if the data value
-	     * is negative, or by a plus sign if the data value
-	     * is positive AND the `+' flag is also present, or
-	     * by a space otherwise.  (Technically, this flag
-	     * is redundant, if the `+' flag is present).
-	     */
-	    if( state == PFORMAT_INIT )
-	      stream.flags |= PFORMAT_ADDSPACE;
-	    break;
-
-	  case '0':
-	    /*
-	     * May represent a flag, to activate the `pad with zeros'
-	     * option, or it may simply be a digit in a width or in a
-	     * precision specification...
-	     */
-	    if( state == PFORMAT_INIT )
-	    {
-	      /* This is the flag usage...
-	       */
-	      stream.flags |= PFORMAT_ZEROFILL;
-	      break;
-	    }
-
-	  default:
-	    /*
-	     * If we didn't match anything above, then we will check
-	     * for digits, which we may accumulate to generate field
-	     * width or precision specifications...
-	     */
-	    if( (state < PFORMAT_END) && ('9' >= c) && (c >= '0') )
-	    {
-	      if( state == PFORMAT_INIT )
-		/*
-		 * Initial digits explicitly relate to field width...
-		 */
-		state = PFORMAT_SET_WIDTH;
-
-	      else if( state == PFORMAT_GET_PRECISION )
-		/*
-		 * while those following a precision indicator
-		 * explicitly relate to precision.
-		 */
-		state = PFORMAT_SET_PRECISION;
-
-	      if( width_spec )
-	      {
-		/* We are accepting a width or precision specification...
-		 */
-		if( *width_spec < 0 )
-		  /*
-		   * and accumulation hasn't started yet; we simply
-		   * initialise the accumulator with the current digit
-		   * value, converting from ASCII to decimal.
-		   */
-		  *width_spec = c - '0';
-
-		else
-		  /* Accumulation has already started; we perform a
-		   * `leftwise decimal digit shift' on the accumulator,
-		   * (i.e. multiply it by ten), then add the decimal
-		   * equivalent value of the current digit.
-		   */ 
-		  *width_spec = *width_spec * 10 + c - '0';
-	      }
-	    }
-
-	    else
-	    {
-	      /* We found a digit out of context, or some other character
-	       * with no designated meaning; reject this format specification,
-	       * backtrack, and emit it as literal text...
-	       */
-	      fmt = backtrack;
+          case 'l':
+            /*
+             * Interpret the argument as explicitly of a
+             * `long' or `long long' data type.
+             */
+            if( *fmt == 'l' )
+            {
+              /* Modifier is `ll'; data type is `long long' sized...
+               * Skip the second `l', and set length accordingly.
+               */
+              ++fmt;
+              length = PFORMAT_LENGTH_LLONG;
+            }
+
+            else
+              /* Modifier is `l'; data type is `long' sized...
+               */
+              length = PFORMAT_LENGTH_LONG;
+
+            state = PFORMAT_END;
+            break;
+
+          case 'L':
+            /*
+             * Identify the appropriate argument as a `long double',
+             * when associated with `%a', `%A', `%e', `%E', `%f', `%F',
+             * `%g' or `%G' format specifications.
+             */
+            stream.flags |= PFORMAT_LDOUBLE;
+            state = PFORMAT_END;
+            break;
+
+          case 't':
+            /*
+             * Interpret the argument as being of the same size as
+             * a `ptrdiff_t' entity...
+             */
+            length = __pformat_arg_length( ptrdiff_t );
+            state = PFORMAT_END;
+            break;
+
+          case 'z':
+            /*
+             * Interpret the argument as being of the same size as
+             * a `size_t' entity...
+             */
+            length = __pformat_arg_length( size_t );
+            state = PFORMAT_END;
+            break;
+
+          /* Precision indicator...
+           * May appear once only; it must precede any modifier
+           * for argument length, or any data type specifier.
+           */
+          case '.':
+            if( state < PFORMAT_GET_PRECISION )
+            {
+              /* We haven't seen a precision specification yet,
+               * so initialise it to zero, (in case no digits follow),
+               * and accept any following digits as the precision.
+               */
+              stream.precision = 0;
+              width_spec = &stream.precision;
+              state = PFORMAT_GET_PRECISION;
+            }
+
+            else
+              /* We've already seen a precision specification,
+               * so this is just junk; proceed to end game.
+               */
+              state = PFORMAT_END;
+
+            /* Either way, we must not fall through here.
+             */
+            break;
+
+          /* Variable field width, or precision specification,
+           * derived from the argument list...
+           */
+          case '*':
+            /*
+             * When this appears...
+             */
+            if(   width_spec
+            &&  ((state == PFORMAT_INIT) || (state == PFORMAT_GET_PRECISION)) )
+            {
+              /* in proper context; assign to field width
+               * or precision, as appropriate.
+               */
+              if( (*width_spec = va_arg( argv, int )) < 0 )
+              {
+                /* Assigned value was negative...
+                 */
+                if( state == PFORMAT_INIT )
+                {
+                  /* For field width, this is equivalent to
+                   * a positive value with the `-' flag...
+                   */
+                  stream.flags |= PFORMAT_LJUSTIFY;
+                  stream.width = -stream.width;
+                }
+
+                else
+                  /* while as a precision specification,
+                   * it should simply be ignored.
+                   */
+                  stream.precision = PFORMAT_IGNORE;
+              }
+            }
+
+            else
+              /* out of context; give up on width and precision
+               * specifications for this conversion.
+               */
+              state = PFORMAT_END;
+
+            /* Mark as processed...
+             * we must not see `*' again, in this context.
+             */
+            width_spec = NULL;
+            break;
+
+          /* Formatting flags...
+           * Must appear while in the PFORMAT_INIT state,
+           * and are non-terminal, so again, end with `break'.
+           */
+          case '#':
+            /*
+             * Select alternate PFORMAT_HASHED output style.
+             */
+            if( state == PFORMAT_INIT )
+              stream.flags |= PFORMAT_HASHED;
+            break;
+
+          case '+':
+            /*
+             * Print a leading sign with numeric output,
+             * for both positive and negative values.
+             */
+            if( state == PFORMAT_INIT )
+              stream.flags |= PFORMAT_POSITIVE;
+            break;
+
+          case '-':
+            /*
+             * Select left justification of displayed output
+             * data, within the output field width, instead of
+             * the default flush right justification.
+             */
+            if( state == PFORMAT_INIT )
+              stream.flags |= PFORMAT_LJUSTIFY;
+            break;
+
+            case '\'':
+              /*
+               * This is an XSI extension to the POSIX standard,
+               * which we do not support, at present.
+               */
+              if (state == PFORMAT_INIT)
+              {
+                stream.flags |= PFORMAT_GROUPED; /* $$$$ */
+                int len; wchar_t rpchr; mbstate_t cstate;
+                memset (&cstate, 0, sizeof(state));
+                if ((len = mbrtowc( &rpchr, localeconv()->thousands_sep, 16, &cstate)) > 0)
+                    stream.thousands_chr = rpchr;
+                stream.thousands_chr_len = len;
+              }
+              break;
+
+          case '\x20':
+            /*
+             * Reserve a single space, within the output field,
+             * for display of the sign of signed data; this will
+             * be occupied by the minus sign, if the data value
+             * is negative, or by a plus sign if the data value
+             * is positive AND the `+' flag is also present, or
+             * by a space otherwise.  (Technically, this flag
+             * is redundant, if the `+' flag is present).
+             */
+            if( state == PFORMAT_INIT )
+              stream.flags |= PFORMAT_ADDSPACE;
+            break;
+
+          case '0':
+            /*
+             * May represent a flag, to activate the `pad with zeros'
+             * option, or it may simply be a digit in a width or in a
+             * precision specification...
+             */
+            if( state == PFORMAT_INIT )
+            {
+              /* This is the flag usage...
+               */
+              stream.flags |= PFORMAT_ZEROFILL;
+              break;
+            }
+
+          default:
+            /*
+             * If we didn't match anything above, then we will check
+             * for digits, which we may accumulate to generate field
+             * width or precision specifications...
+             */
+            if( (state < PFORMAT_END) && ('9' >= c) && (c >= '0') )
+            {
+              if( state == PFORMAT_INIT )
+                /*
+                 * Initial digits explicitly relate to field width...
+                 */
+                state = PFORMAT_SET_WIDTH;
+
+              else if( state == PFORMAT_GET_PRECISION )
+                /*
+                 * while those following a precision indicator
+                 * explicitly relate to precision.
+                 */
+                state = PFORMAT_SET_PRECISION;
+
+              if( width_spec )
+              {
+                /* We are accepting a width or precision specification...
+                 */
+                if( *width_spec < 0 )
+                  /*
+                   * and accumulation hasn't started yet; we simply
+                   * initialise the accumulator with the current digit
+                   * value, converting from ASCII to decimal.
+                   */
+                  *width_spec = c - '0';
+
+                else
+                  /* Accumulation has already started; we perform a
+                   * `leftwise decimal digit shift' on the accumulator,
+                   * (i.e. multiply it by ten), then add the decimal
+                   * equivalent value of the current digit.
+                   */
+                  *width_spec = *width_spec * 10 + c - '0';
+              }
+            }
+
+            else
+            {
+              /* We found a digit out of context, or some other character
+               * with no designated meaning; reject this format specification,
+               * backtrack, and emit it as literal text...
+               */
+              fmt = backtrack;
       #ifndef __BUILD_WIDEAPI
-	      __pformat_putc( '%', &stream );
+              __pformat_putc( '%', &stream );
       #else
           stream.width = stream.precision = PFORMAT_IGNORE;
           __pformat_wputchars( L"%", 1, &stream );
       #endif
-	      goto format_scan;
-	    }
-	}
+              goto format_scan;
+            }
+        }
       }
     }
 
lib/libc/mingw/stdio/scanf.S
@@ -9,17 +9,14 @@
    The goal of this routine is to turn a call to v*scanf into a call to
    s*scanf.  This is needed because mingw-w64 uses msvcr100.dll, which doesn't
    support the v*scanf functions instead of msvcr120.dll which does.
-   Unfortunately, there is no defined way to know exactly how big a va_list
-   is, so we use a hard-coded buffer.
-
-   I suppose a sufficiently-motivated person could try to parse the format
-   to figure out how many tokens there are... */
+*/
 
 /* The function prototype here is (essentially):
 
-   int __ms_vsscanf_internal (void *s,
+   int __ms_v*scanf_internal (void *s,
 			     void *format,
 			     void *arg,
+			     size_t count,
 			     void *func);
 
    I say 'essentially' because passing a function pointer as void in ISO
@@ -37,19 +34,6 @@
 	 */
     .def __argtos;    .scl    2;    .type    32;    .endef
 
-    /* The max number of pointers we support.  Must be an even number
-       to keep the 64bit stack 16byte aligned.  Must not be less than 4.  */
-    .equ entries, 30
-
-    /* 64bit pointers are 8 bytes.  */
-    .equ sizeof, 8
-
-    /* Size of our buffer.  */
-    .equ iBytes, entries * sizeof
-
-    /* Stack space for first 2 args to s*scanf.  */
-    .equ iOffset, (2 * sizeof)
-
     .seh_proc __argtos
 __argtos:
 
@@ -58,48 +42,58 @@ __argtos:
       - format must be in rdx.  That's where it is on entry.
       - The first pointer in arg must be in r8. arg is in r8 on entry.
       - The second pointer in arg must be in r9. arg is in r8 on entry.
-      - The ($entries - 2) other pointers in arg must be on the stack,
+      - The (count - 2) other pointers in arg must be on the stack,
 	starting 32bytes into rsp.  */
 
-    /* We need enough room to shadow (s + format)
-       + (enough room for all the other args).  */
-    subq $(iOffset + iBytes), %rsp
-    .seh_stackalloc iOffset + iBytes
+    pushq %rbp
+    .seh_pushreg %rbp
+    movq %rsp, %rbp
+    .seh_setframe %rbp, 0
 
+    /* We need to always reserve space to shadow 4 parameters.  */
+    subq $32, %rsp
+    .seh_stackalloc 32
     .seh_endprologue
 
-    /* We are going to copy $entries pointers from arg to our
-       local stack.  Except the first 2, since they will be
-       loaded in registers.  */
-    movq $entries - 2, %r10 /* # of ptrs to copy.  */
-
-    /* The first 32 bytes are in registers, but by spec, space
-	   must still be reserved for them on the stack.  Put the
+    movq 48(%rbp), %r10 /* func. */
+
+    /* We need enough room to shadow all the other args.
+       Except the first 2, since they will be loaded in registers.  */
+    cmpq $2, %r9 /* count. */
+    jbe .SKIP
+    subq $2, %r9 /* # of ptrs to copy.  */
+    /* Calculate stack size (arg is 8byte) and keep the stack 16byte aligned. */
+    leaq 8(, %r9, 8), %rax /* %rax = (%r9 + 1) * 8 */
+    andq $-16, %rax
+    subq %rax, %rsp
+
+    /* We are going to copy parameters from arg to our local stack.
+       The first 32 bytes are in registers, but by spec, space
+       must still be reserved for them on the stack.  Put the
        rest of the pointers in the stack after that.  */
     lea 32(%rsp), %r11 /* dst.  */
 
 .LOOP:
-    subq $1, %r10
+    subq $1, %r9
 
     /* Use 16 to skip over the first 2 pointers.  */
-    movq 16(%r8, %r10, 8), %rax
-    movq %rax, (%r11, %r10, 8)
+    movq 16(%r8, %r9, 8), %rax
+    movq %rax, (%r11, %r9, 8)
     jnz .LOOP
 
-    /* r9 contains the routine we are going to call.  Since we are about to
-       overwrite it, move it somewhere safe.  */
-    movq %r9, %r10
-
+.SKIP:
     /* The stack is now correctly populated, and so are rcx and rdx.
        But we need to load the last 2 regs before making the call.  */
     movq 0x8(%r8), %r9 /* 2nd dest location (may be garbage if only 1 arg).  */
-    movq (%r8), %r8 /* 1st dest location.  */
+    movq (%r8), %r8 /* 1st dest location (may be garbage if no arg).  */
 
     /* Make the call.  */
     callq *%r10
 
-    addq $(iOffset + iBytes), %rsp
+    /* Restore stack.  */
+    movq %rbp, %rsp
 
+    popq %rbp
     retq
     .seh_endproc
 
@@ -113,31 +107,23 @@ __argtos:
 	 */
     .def __argtos;    .scl    2;    .type    32;    .endef
 
-    /* The max number of pointers we support.  Must not be less than 1.  */
-    .equ entries, 30
-
-    /* 64bit pointers are 8 bytes.  */
-    .equ sizeof, 4
-
-    /* Size of our buffer.  */
-    .set iBytes, entries * sizeof
-
-    /* Stack space for first 2 args to s*scanf.  */
-    .equ iOffset, (2 * sizeof)
-
 __argtos:
     pushl %ebp
     movl %esp, %ebp
     pushl %edi
+    pushl %ebx
 
     /* Reserve enough stack space for everything.
 
        Stack usage will look like:
        4 bytes - s
        4 bytes - format
-       (iBytes) bytes - variable # of parameters for sscanf (all ptrs).  */
+       4*count bytes - variable # of parameters for sscanf (all ptrs).  */
 
-    subl $(iOffset + iBytes), %esp
+    movl 20(%ebp), %ebx  /* count.  */
+    addl $2, %ebx  /* s + format.  */
+    sall $2, %ebx  /* (count + 2) * 4.  */
+    subl %ebx, %esp
 
     /* Write out s and format where they need to be for the sscanf call.  */
     movl 8(%ebp), %eax
@@ -145,10 +131,12 @@ __argtos:
     movl 12(%ebp), %edx
     movl %edx, 0x4(%esp)  /* format.  */
 
-    /* We are going to copy $entries pointers from arg to our
+    /* We are going to copy _count_ pointers from arg to our
        local stack.  */
-    movl $entries, %ecx /* # of ptrs to copy.  */
-    lea iOffset(%esp), %edi /* dst.  */
+    movl 20(%ebp), %ecx /* # of ptrs to copy.  */
+    testl %ecx, %ecx
+    jz .SKIP
+    lea 8(%esp), %edi /* dst.  */
     movl 16(%ebp), %edx /* src.  */
 
 .LOOP:
@@ -158,13 +146,16 @@ __argtos:
     movl %eax, (%edi, %ecx, 4)
     jnz .LOOP
 
+.SKIP:
     /* The stack is now correctly populated.  */
 
     /* Make the call.  */
-    call *20(%ebp)
+    call *24(%ebp)
 
     /* Restore stack.  */
-    addl $(iOffset + iBytes), %esp
+    addl %ebx, %esp
+
+    popl %ebx
     popl %edi
     leave
 
@@ -178,25 +169,35 @@ __argtos:
     .globl __argtos
 
 __argtos:
-    push    {r4-r7, lr}
-    sub     sp, sp, #128
-    mov     r12, r3
-    mov     r4, sp
+    push    {r4-r8, lr}
+    ldr     r12, [sp, #24]
 
     ldr     r5, [r2], #4
     ldr     r6, [r2], #4
 
-    mov     r3, #116
+    subs    r3, r3, #2
+    mov     r8, #0
+    ble     2f
+
+    /* Round the number of entries to an even number, to maintain
+     * 8 byte stack alignment. */
+    mov     r8, r3
+    add     r8, r8, #1
+    bic     r8, r8, #1
+    sub     sp, sp, r8, lsl #2
+    mov     r4, sp
 1:  ldr     r7, [r2], #4
+    subs    r3, r3, #1
     str     r7, [r4], #4
-    subs    r3, r3, #4
     bne     1b
 
+2:
     mov     r2, r5
     mov     r3, r6
     blx     r12
-    add     sp, sp, #128
-    pop     {r4-r7, pc}
+
+    add     sp, sp, r8, lsl #2
+    pop     {r4-r8, pc}
 
 #elif defined (__aarch64__)
 
@@ -207,10 +208,9 @@ __argtos:
 __argtos:
     stp     x29, x30, [sp, #-16]!
     mov     x29, sp
-    sub     sp, sp, #256
-    mov     x9, sp
     mov     x10, x2
     mov     x11, x3
+    mov     x12, x4
 
     ldr     x2, [x10], #8
     ldr     x3, [x10], #8
@@ -219,13 +219,23 @@ __argtos:
     ldr     x6, [x10], #8
     ldr     x7, [x10], #8
 
-    mov     x12, #240
+    subs    x11, x11, #6
+    b.le    2f
+
+    /* Round the number of entries to an even number, to maintain
+     * 16 byte stack alignment. */
+    mov     x13, x11
+    add     x13, x13, #1
+    bic     x13, x13, #1
+    sub     sp, sp, x13, lsl #3
+    mov     x9, sp
 1:  ldr     x13, [x10], #8
+    subs    x11, x11, #1
     str     x13, [x9], #8
-    subs    x12, x12, #8
     b.ne    1b
 
-    blr     x11
+2:
+    blr     x12
     mov     sp, x29
     ldp     x29, x30, [sp], #16
     ret
lib/libc/mingw/stdio/snprintf.c
@@ -12,27 +12,7 @@ int __cdecl __ms_snprintf(char* buffer, size_t n, const char *format, ...)
   va_list argptr;
          
   va_start(argptr, format);
-
-  /* _vsnprintf() does not work with zero length buffer
-   * so count number of character by _vscprintf() call */
-  if (n == 0 || !buffer)
-  {
-    retval = _vscprintf(format, argptr);
-    va_end(argptr);
-    return retval;
-  }
-
-  retval = _vsnprintf (buffer, n, format, argptr);
-
-  /* _vsnprintf() returns negative number if buffer is too small
-   * so count number of character by _vscprintf() call */
-  if (retval < 0)
-    retval = _vscprintf(format, argptr);
-
-  /* _vsnprintf() does not fill trailing null byte if there is not place for it */
-  if ((size_t)retval >= n)
-    buffer[n-1] = '\0';
-
+  retval = __ms_vsnprintf(buffer, n, format, argptr);
   va_end(argptr);
   return retval;
 }
lib/libc/mingw/stdio/strtof.c
@@ -4,8 +4,24 @@
  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  */
 #include <stdlib.h>
+#include <float.h>
+#include <errno.h>
+#include <math.h>
 
 float strtof( const char *nptr, char **endptr)
 {
-  return (strtod(nptr, endptr));
+  double ret = strtod(nptr, endptr);
+  if (isfinite(ret)) {
+    /* Check for cases that aren't out of range for doubles, but that are
+     * for floats. */
+    if (ret > FLT_MAX)
+      errno = ERANGE;
+    else if (ret < -FLT_MAX)
+      errno = ERANGE;
+    else if (ret > 0 && ret < FLT_MIN)
+      errno = ERANGE;
+    else if (ret < 0 && ret > -FLT_MIN)
+      errno = ERANGE;
+  }
+  return ret;
 }
lib/libc/mingw/stdio/vfscanf.c
@@ -11,18 +11,22 @@ extern int __ms_vfscanf_internal (
   FILE * s,
   const char * format,
   va_list arg,
+  size_t count,
   int (*func)(FILE * __restrict__,  const char * __restrict__, ...))
   asm("__argtos");
 
+extern size_t __ms_scanf_max_arg_count_internal (const char * format);
+
 int __ms_vfscanf (FILE * __restrict__ stream, const char * __restrict__ format, va_list arg)
 {
+  size_t count = __ms_scanf_max_arg_count_internal (format);
   int ret;
 
 #if defined(_AMD64_) || defined(__x86_64__) || \
   defined(_X86_) || defined(__i386__) || \
   defined(_ARM_) || defined(__arm__) || \
   defined(_ARM64_) || defined(__aarch64__)
-  ret = __ms_vfscanf_internal (stream, format, arg, fscanf);
+  ret = __ms_vfscanf_internal (stream, format, arg, count, fscanf);
 #else
 #error "unknown platform"
 #endif
lib/libc/mingw/stdio/vfwscanf.c
@@ -11,19 +11,23 @@ extern int __ms_vfwscanf_internal (
   FILE * s,
   const wchar_t * format,
   va_list arg,
+  size_t count,
   int (*func)(FILE * __restrict__,  const wchar_t * __restrict__, ...))
   asm("__argtos");
 
+extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format);
+
 int __ms_vfwscanf (FILE * __restrict__ stream,
   const wchar_t * __restrict__ format, va_list arg)
 {
+  size_t count = __ms_wscanf_max_arg_count_internal (format);
   int ret;
 
 #if defined(_AMD64_) || defined(__x86_64__) || \
   defined(_X86_) || defined(__i386__) || \
   defined(_ARM_) || defined(__arm__) || \
   defined (_ARM64_) || defined (__aarch64__)
-  ret = __ms_vfwscanf_internal (stream, format, arg, fwscanf);
+  ret = __ms_vfwscanf_internal (stream, format, arg, count, fwscanf);
 #else
 #error "unknown platform"
 #endif
lib/libc/mingw/stdio/vsnprintf.c
@@ -13,19 +13,19 @@ int __cdecl __ms_vsnprintf (char *s,size_t n,const char *format,va_list arg)
 
     /* _vsnprintf() does not work with zero length buffer
      * so count number of character by _vscprintf() call */
-    if (n == 0 || !s)
+    if (n == 0)
         return _vscprintf(format, arg);
 
     retval = _vsnprintf(s, n, format, arg);
 
+    /* _vsnprintf() does not fill trailing null byte if there is not place for it */
+    if (retval < 0 || (size_t)retval == n)
+        s[n-1] = '\0';
+
     /* _vsnprintf() returns negative number if buffer is too small
      * so count number of character by _vscprintf() call */
     if (retval < 0)
         retval = _vscprintf(format, arg);
 
-    /* _vsnprintf() does not fill trailing null byte if there is not place for it */
-    if ((size_t)retval >= n)
-        s[n-1] = '\0';
-
     return retval;
 }
lib/libc/mingw/stdio/vsscanf.c
@@ -11,19 +11,23 @@ extern int __ms_vsscanf_internal (
   const char * s,
   const char * format,
   va_list arg,
+  size_t count,
   int (*func)(const char * __restrict__,  const char * __restrict__, ...))
   asm("__argtos");
 
+extern size_t __ms_scanf_max_arg_count_internal (const char * format);
+
 int __ms_vsscanf (const char * __restrict__ s,
   const char * __restrict__ format, va_list arg)
 {
+  size_t count = __ms_scanf_max_arg_count_internal (format);
   int ret;
 
 #if defined(_AMD64_) || defined(__x86_64__) || \
   defined(_X86_) || defined(__i386__) || \
   defined(_ARM_) || defined(__arm__) || \
   defined(_ARM64_) || defined(__aarch64__)
-  ret = __ms_vsscanf_internal (s, format, arg, sscanf);
+  ret = __ms_vsscanf_internal (s, format, arg, count, sscanf);
 #else
 #error "unknown platform"
 #endif
lib/libc/mingw/stdio/vswscanf.c
@@ -11,19 +11,23 @@ extern int __ms_vswscanf_internal (
   const wchar_t * s,
   const wchar_t * format,
   va_list arg,
+  size_t count,
   int (*func)(const wchar_t * __restrict__,  const wchar_t * __restrict__, ...))
   asm("__argtos");
 
+extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format);
+
 int __ms_vswscanf(const wchar_t * __restrict__ s, const wchar_t * __restrict__ format,
   va_list arg)
 {
+  size_t count = __ms_wscanf_max_arg_count_internal (format);
   int ret;
 
 #if defined(_AMD64_) || defined(__x86_64__) || \
   defined(_X86_) || defined(__i386__) || \
   defined(_ARM_) || defined(__arm__) || \
   defined(_ARM64_) || defined(__aarch64__)
-  ret = __ms_vswscanf_internal (s, format, arg, swscanf);
+  ret = __ms_vswscanf_internal (s, format, arg, count, swscanf);
 #else
 #error "unknown platform"
 #endif
lib/libc/mingw/stdio/vwscanf.c
@@ -10,12 +10,7 @@
 #include <wchar.h>
 #include <stdio.h>
 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wimplicit-function-declaration"
-
 int __ms_vwscanf (const wchar_t * __restrict__ format, va_list arg)
 {
   return __ms_vfwscanf(stdin, format, arg);
 }
-
-#pragma clang diagnostic pop
src/mingw.zig
@@ -677,7 +677,6 @@ const mingwex_generic_src = [_][]const u8{
     "math" ++ path.sep_str ++ "cbrt.c",
     "math" ++ path.sep_str ++ "cbrtf.c",
     "math" ++ path.sep_str ++ "cbrtl.c",
-    "math" ++ path.sep_str ++ "cephes_emath.c",
     "math" ++ path.sep_str ++ "copysign.c",
     "math" ++ path.sep_str ++ "copysignf.c",
     "math" ++ path.sep_str ++ "coshf.c",
@@ -810,7 +809,6 @@ const mingwex_generic_src = [_][]const u8{
     "misc" ++ path.sep_str ++ "strnlen.c",
     "misc" ++ path.sep_str ++ "strsafe.c",
     "misc" ++ path.sep_str ++ "strtoimax.c",
-    "misc" ++ path.sep_str ++ "strtold.c",
     "misc" ++ path.sep_str ++ "strtoumax.c",
     "misc" ++ path.sep_str ++ "tdelete.c",
     "misc" ++ path.sep_str ++ "tfind.c",