diff --git a/lib/libc/mingw/crt/charmax.c b/lib/libc/mingw/crt/charmax.c index 08aa5a1d3e..5106d1e0d1 100644 --- a/lib/libc/mingw/crt/charmax.c +++ b/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; diff --git a/lib/libc/mingw/crt/crtdll.c b/lib/libc/mingw/crt/crtdll.c index 51b8d35141..08cd5922a8 100644 --- a/lib/libc/mingw/crt/crtdll.c +++ b/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__) diff --git a/lib/libc/mingw/crt/crtexe.c b/lib/libc/mingw/crt/crtexe.c index 646054320c..c6d43168ba 100644 --- a/lib/libc/mingw/crt/crtexe.c +++ b/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) diff --git a/lib/libc/mingw/crt/mingw_helpers.c b/lib/libc/mingw/crt/mingw_helpers.c index f5ce286ef5..84413cdb7c 100644 --- a/lib/libc/mingw/crt/mingw_helpers.c +++ b/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; diff --git a/lib/libc/mingw/crt/pseudo-reloc.c b/lib/libc/mingw/crt/pseudo-reloc.c index c31da96810..d4589ca663 100644 --- a/lib/libc/mingw/crt/pseudo-reloc.c +++ b/lib/libc/mingw/crt/pseudo-reloc.c @@ -21,6 +21,7 @@ #include #include #include +#include #if defined(__CYGWIN__) #include @@ -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)) { diff --git a/lib/libc/mingw/crt/tlssup.c b/lib/libc/mingw/crt/tlssup.c index 582fa8519e..47beb27fcc 100644 --- a/lib/libc/mingw/crt/tlssup.c +++ b/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; diff --git a/lib/libc/mingw/gdtoa/strtopx.c b/lib/libc/mingw/gdtoa/strtopx.c index 64db719e04..51f5ef42de 100644 --- a/lib/libc/mingw/gdtoa/strtopx.c +++ b/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 diff --git a/lib/libc/mingw/include/config.h b/lib/libc/mingw/include/config.h index 2c96636426..2e74ae1d19 100644 --- a/lib/libc/mingw/include/config.h +++ b/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 header file. */ #define HAVE_INTTYPES_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + /* Define to 1 if you have the 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 */ diff --git a/lib/libc/mingw/include/msvcrt.h b/lib/libc/mingw/include/msvcrt.h index d5346254f0..c6f1052247 100644 --- a/lib/libc/mingw/include/msvcrt.h +++ b/lib/libc/mingw/include/msvcrt.h @@ -1,7 +1,7 @@ #include -#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) diff --git a/lib/libc/mingw/lib64/bthprops.def b/lib/libc/mingw/lib-common/bthprops.def similarity index 100% rename from lib/libc/mingw/lib64/bthprops.def rename to lib/libc/mingw/lib-common/bthprops.def diff --git a/lib/libc/mingw/libarm32/fwpuclnt.def b/lib/libc/mingw/lib-common/fwpuclnt.def similarity index 89% rename from lib/libc/mingw/libarm32/fwpuclnt.def rename to lib/libc/mingw/lib-common/fwpuclnt.def index 6f29ed7198..33497ddd55 100644 --- a/lib/libc/mingw/libarm32/fwpuclnt.def +++ b/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 diff --git a/lib/libc/mingw/lib64/glu32.def b/lib/libc/mingw/lib-common/glu32.def similarity index 100% rename from lib/libc/mingw/lib64/glu32.def rename to lib/libc/mingw/lib-common/glu32.def diff --git a/lib/libc/mingw/lib-common/msvcrt.def.in b/lib/libc/mingw/lib-common/msvcrt.def.in index 0ea9d388fb..942c4c4ebe 100644 --- a/lib/libc/mingw/lib-common/msvcrt.def.in +++ b/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 diff --git a/lib/libc/mingw/lib-common/mswsock.def b/lib/libc/mingw/lib-common/mswsock.def index 889f2f1f77..b557a10e71 100644 --- a/lib/libc/mingw/lib-common/mswsock.def +++ b/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 diff --git a/lib/libc/mingw/lib-common/ntdll.def.in b/lib/libc/mingw/lib-common/ntdll.def.in index 0ad5922a08..8d91bb5470 100644 --- a/lib/libc/mingw/lib-common/ntdll.def.in +++ b/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 diff --git a/lib/libc/mingw/lib64/opengl32.def b/lib/libc/mingw/lib-common/opengl32.def similarity index 100% rename from lib/libc/mingw/lib64/opengl32.def rename to lib/libc/mingw/lib-common/opengl32.def diff --git a/lib/libc/mingw/lib-common/query.def b/lib/libc/mingw/lib-common/query.def new file mode 100644 index 0000000000..008ccc90fc --- /dev/null +++ b/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 diff --git a/lib/libc/mingw/lib-common/tbs.def b/lib/libc/mingw/lib-common/tbs.def index a4093d9890..59b9dfe043 100644 --- a/lib/libc/mingw/lib-common/tbs.def +++ b/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 diff --git a/lib/libc/mingw/lib-common/ws2_32.def.in b/lib/libc/mingw/lib-common/ws2_32.def.in index 4789b77d87..b49c4b87d3 100644 --- a/lib/libc/mingw/lib-common/ws2_32.def.in +++ b/lib/libc/mingw/lib-common/ws2_32.def.in @@ -38,6 +38,7 @@ GetHostNameW GetNameInfoW InetNtopW InetPtonW +ProcessSocketNotifications SetAddrInfoExA SetAddrInfoExW WPUCompleteOverlappedRequest diff --git a/lib/libc/mingw/lib32/authz.def b/lib/libc/mingw/lib32/authz.def index 262a2da26d..764bd9dd80 100644 --- a/lib/libc/mingw/lib32/authz.def +++ b/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 diff --git a/lib/libc/mingw/lib32/fwpuclnt.def b/lib/libc/mingw/lib32/fwpuclnt.def index 03c006c5b4..fd33788529 100644 --- a/lib/libc/mingw/lib32/fwpuclnt.def +++ b/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 diff --git a/lib/libc/mingw/lib32/ksuser.def b/lib/libc/mingw/lib32/ksuser.def index 63a6916186..fe97a06a22 100644 --- a/lib/libc/mingw/lib32/ksuser.def +++ b/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 diff --git a/lib/libc/mingw/lib32/mswsock.def b/lib/libc/mingw/lib32/mswsock.def index 3e74f87a11..90c20dcd79 100644 --- a/lib/libc/mingw/lib32/mswsock.def +++ b/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 diff --git a/lib/libc/mingw/lib32/ntdll.def b/lib/libc/mingw/lib32/ntdll.def index 48b32ff699..5f6ff3a02d 100644 --- a/lib/libc/mingw/lib32/ntdll.def +++ b/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 diff --git a/lib/libc/mingw/lib32/query.def b/lib/libc/mingw/lib32/query.def new file mode 100644 index 0000000000..3c90963440 --- /dev/null +++ b/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 diff --git a/lib/libc/mingw/lib32/tbs.def b/lib/libc/mingw/lib32/tbs.def index 13bdf3831f..1ea9f8bb27 100644 --- a/lib/libc/mingw/lib32/tbs.def +++ b/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 diff --git a/lib/libc/mingw/lib32/user32.def b/lib/libc/mingw/lib32/user32.def index c20d16835a..cd0cd1841f 100644 --- a/lib/libc/mingw/lib32/user32.def +++ b/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 diff --git a/lib/libc/mingw/lib32/ws2_32.def b/lib/libc/mingw/lib32/ws2_32.def index 19f3f69dbc..f78defcfb1 100644 --- a/lib/libc/mingw/lib32/ws2_32.def +++ b/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 diff --git a/lib/libc/mingw/lib64/fwpuclnt.def b/lib/libc/mingw/lib64/fwpuclnt.def deleted file mode 100644 index c23e0929fe..0000000000 --- a/lib/libc/mingw/lib64/fwpuclnt.def +++ /dev/null @@ -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 diff --git a/lib/libc/mingw/lib64/query.def b/lib/libc/mingw/lib64/query.def deleted file mode 100644 index 86ac59ced7..0000000000 --- a/lib/libc/mingw/lib64/query.def +++ /dev/null @@ -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 & __ptr64) __ptr64 -??0CPidRemapper@@QEAA@AEAV?$XInterface@UIPropertyMapper@@@@@Z -; public: __cdecl CPidRemapper::CPidRemapper(class CPidMapper const & __ptr64,class XInterface & __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 & __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 & __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 & __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 & __ptr64,unsigned short const * __ptr64) -?BuildRegistryPropertiesKey@@YAXAEAV?$XArray@G@@PEBG@Z -; void __cdecl BuildRegistryScopesKey(class XArray & __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 & __ptr64,unsigned long & __ptr64) __ptr64 -?GetCGIVariable@CWebServer@@QEAAHPEBDAEAV?$XArray@G@@AEAK@Z -; public: int __cdecl CWebServer::GetCGIVariableW(unsigned short const * __ptr64,class XArray & __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 & __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 & __ptr64,class XPtrST & __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 & __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 * __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 & __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 & __ptr64,class XPtr & __ptr64,class XPtr & __ptr64,class XPtr & __ptr64,class CRowsetProperties & __ptr64,class XPtr & __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 & __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 & __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 diff --git a/lib/libc/mingw/libarm32/query.def b/lib/libc/mingw/libarm32/query.def deleted file mode 100644 index 091bd136aa..0000000000 --- a/lib/libc/mingw/libarm32/query.def +++ /dev/null @@ -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 diff --git a/lib/libc/mingw/math/cephes_emath.c b/lib/libc/mingw/math/cephes_emath.c deleted file mode 100644 index 41e297cfe8..0000000000 --- a/lib/libc/mingw/math/cephes_emath.c +++ /dev/null @@ -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 */ diff --git a/lib/libc/mingw/math/cephes_emath.h b/lib/libc/mingw/math/cephes_emath.h deleted file mode 100644 index 58a8e13c9a..0000000000 --- a/lib/libc/mingw/math/cephes_emath.h +++ /dev/null @@ -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 - * - */ - - -/* 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 -#include -#include -#include -#include -#include -#include - -#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 */ - diff --git a/lib/libc/mingw/math/x86/asinh.c b/lib/libc/mingw/math/x86/asinh.c index 826cc6dee2..002aedee8c 100644 --- a/lib/libc/mingw/math/x86/asinh.c +++ b/lib/libc/mingw/math/x86/asinh.c @@ -5,6 +5,7 @@ */ #include #include +#include #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. } - diff --git a/lib/libc/mingw/math/x86/asinhf.c b/lib/libc/mingw/math/x86/asinhf.c index fae785abef..c3d8850547 100644 --- a/lib/libc/mingw/math/x86/asinhf.c +++ b/lib/libc/mingw/math/x86/asinhf.c @@ -5,6 +5,7 @@ */ #include #include +#include #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. } diff --git a/lib/libc/mingw/math/x86/asinhl.c b/lib/libc/mingw/math/x86/asinhl.c index bb2ca97b22..5090da814e 100644 --- a/lib/libc/mingw/math/x86/asinhl.c +++ b/lib/libc/mingw/math/x86/asinhl.c @@ -5,6 +5,7 @@ */ #include #include +#include #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. } diff --git a/lib/libc/mingw/math/x86/atanh.c b/lib/libc/mingw/math/x86/atanh.c index 429bfeae70..b3aa76fe91 100644 --- a/lib/libc/mingw/math/x86/atanh.c +++ b/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. } diff --git a/lib/libc/mingw/math/x86/atanhf.c b/lib/libc/mingw/math/x86/atanhf.c index 96d1e9b229..9adc6902de 100644 --- a/lib/libc/mingw/math/x86/atanhf.c +++ b/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. } diff --git a/lib/libc/mingw/math/x86/atanhl.c b/lib/libc/mingw/math/x86/atanhl.c index 59eb1bd917..76897466eb 100644 --- a/lib/libc/mingw/math/x86/atanhl.c +++ b/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. } diff --git a/lib/libc/mingw/misc/btowc.c b/lib/libc/mingw/misc/btowc.c index 026b491d79..c8fbd8e74d 100644 --- a/lib/libc/mingw/misc/btowc.c +++ b/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; } } diff --git a/lib/libc/mingw/misc/lc_locale_func.c b/lib/libc/mingw/misc/lc_locale_func.c index e6847ae8b6..8f9ccd4b14 100644 --- a/lib/libc/mingw/misc/lc_locale_func.c +++ b/lib/libc/mingw/misc/lc_locale_func.c @@ -2,18 +2,11 @@ #define ___lc_codepage_func __dummy____lc_codepage_func #include #include -#include #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; } +#ifndef __LIBMSVCRT_OS__ + +unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = setlocale_codepage_hack; + +#else + +#include + +static unsigned int *msvcrt__lc_codepage; +static unsigned int __cdecl msvcrt___lc_codepage_func(void) +{ + 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; -unsigned int __cdecl ___lc_codepage_func (void) -{ - return __MINGW_IMP_SYMBOL(___lc_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)(); +} diff --git a/lib/libc/mingw/misc/mingw_wcstod.c b/lib/libc/mingw/misc/mingw_wcstod.c index 394c0f1c33..e35a952668 100644 --- a/lib/libc/mingw/misc/mingw_wcstod.c +++ b/lib/libc/mingw/misc/mingw_wcstod.c @@ -1,4 +1,7 @@ #include +#include +#include +#include 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; } diff --git a/lib/libc/mingw/misc/mingw_wcstold.c b/lib/libc/mingw/misc/mingw_wcstold.c index ce1ad5e005..2f66bee2b6 100644 --- a/lib/libc/mingw/misc/mingw_wcstold.c +++ b/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 + */ + + /* This routine has been placed in the public domain.*/ + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif #include -#include +#include +#include +#include +#include +#include -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; + char * cs; + char * cse; + unsigned int i; + long double ret; + const unsigned int cp = ___lc_codepage_func(); - 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; + /* 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; } - diff --git a/lib/libc/mingw/misc/seterrno.c b/lib/libc/mingw/misc/seterrno.c index 952675da00..ab54c668f7 100644 --- a/lib/libc/mingw/misc/seterrno.c +++ b/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; } diff --git a/lib/libc/mingw/misc/setjmp.S b/lib/libc/mingw/misc/setjmp.S index b2058e9e21..0c06b86320 100644 --- a/lib/libc/mingw/misc/setjmp.S +++ b/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 */ diff --git a/lib/libc/mingw/misc/strtold.c b/lib/libc/mingw/misc/strtold.c deleted file mode 100644 index 2b99eba825..0000000000 --- a/lib/libc/mingw/misc/strtold.c +++ /dev/null @@ -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; -} - diff --git a/lib/libc/mingw/misc/wcstold.c b/lib/libc/mingw/misc/wcstold.c index 0137b20a34..12714ba19a 100644 --- a/lib/libc/mingw/misc/wcstold.c +++ b/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 - */ - /* This routine has been placed in the public domain.*/ - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include #include -#include -#include - -#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); } diff --git a/lib/libc/mingw/secapi/vsprintf_s.c b/lib/libc/mingw/secapi/vsprintf_s.c index fd0c4ef13b..45dfb14b11 100644 --- a/lib/libc/mingw/secapi/vsprintf_s.c +++ b/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 diff --git a/lib/libc/mingw/stdio/mingw_pformat.c b/lib/libc/mingw/stdio/mingw_pformat.c index a68d0f67a5..d9f5de7cef 100644 --- a/lib/libc/mingw/stdio/mingw_pformat.c +++ b/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,8 +1048,47 @@ typedef union */ #include "../gdtoa/gdtoa.h" +static __pformat_fpreg_t init_fpreg_ldouble( long double val ) +{ + __pformat_fpreg_t x; + x.__pformat_fpreg_ldouble_t = val; + + if( sizeof( double ) == sizeof( long double ) ) + { + /* 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 topbit = exp ? 1 : 0; + int signbit = x.__pformat_fpreg_mantissa >> 63; + + if (exp == 0x7ff) + exp = 0x7fff; + else if (exp != 0) + exp = exp - 1023 + 16383; + 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); + } + + return x; +} + static -char *__pformat_cvt( int mode, __pformat_fpreg_t x, int nd, int *dp, int *sign ) +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 @@ -1057,29 +1096,9 @@ char *__pformat_cvt( int mode, __pformat_fpreg_t x, int nd, int *dp, int *sign ) */ 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 */ }; - - 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. - */ - int exp = (x.__pformat_fpreg_mantissa >> 52) & 0x7ff; - unsigned long long mant = x.__pformat_fpreg_mantissa & 0x000fffffffffffffULL; - int integer = 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); - x.__pformat_fpreg_exponent = exp | (signbit << 15); - } - else - k = __fpclassifyl( x.__pformat_fpreg_ldouble_t ); + __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. + /* 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. */ - 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. - */ - *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,7 @@ 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... */ @@ -2289,29 +2305,100 @@ void __pformat_xldouble( long double x, __pformat_t *stream ) 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; - * 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 - 0x3FFF; + } } 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; + + /* 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... + */ + 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 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. + */ + 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 - 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; + goto format_scan; - case 'C': - /* - * Equivalent to `%lc'; set `length' accordingly, - * and simply fall through. - */ - length = PFORMAT_LENGTH_LONG; + 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; + 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; + /* 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': + /* + * 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 '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... - */ + 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 ); + /* + * 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 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 + { /* 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; - } + 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 ); + /* 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 ); + else + /* or in octal or hexadecimal format... + */ + __pformat_xint( c, argval, &stream ); - goto format_scan; + 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; + 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; + __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 '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 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... - */ + 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 ); + 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 ); + 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; + 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 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'... - */ + 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 ); + 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 ); + 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; + 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 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... - */ + 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 ); + 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 ); + 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; + 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, 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 ); + 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_xldouble( (long double)(va_arg( argv, double )), &stream ); + else + /* or just a `double'. + */ + __pformat_xdouble( va_arg( argv, double ), &stream ); - goto format_scan; + 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; + 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_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_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 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; + else + /* + * or, by default, to a signed `int'. + */ + *va_arg( argv, int * ) = stream.count; - goto format_scan; + 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; - } + /* 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; + else + /* Modifier is `h'; data type is `short' sized... + */ + length = PFORMAT_LENGTH_SHORT; - state = PFORMAT_END; - break; + 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 '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; - case 'I': - /* - * The MSVCRT implementation of the printf() family of - * functions explicitly uses... - */ +# 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; - } + 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 ); + 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; + state = PFORMAT_END; + break; + +# endif -# endif - #ifdef __ENABLE_DFP - case 'H': - stream.flags |= PFORMAT_DECIM32; - 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; - } + 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; + else + /* Modifier is `D'; data type is `_Decimal64' sized... + */ + stream.flags |= PFORMAT_DECIM64; - state = PFORMAT_END; - break; + 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; - } + 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; + else + /* Modifier is `l'; data type is `long' sized... + */ + length = PFORMAT_LENGTH_LONG; - state = PFORMAT_END; - break; + 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; - } + 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; - else - /* We've already seen a precision specification, - * so this is just junk; proceed to end game. - */ - state = PFORMAT_END; + 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; - /* Either way, we must not fall through here. - */ - 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; - /* 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; - } + /* 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 - /* while as a precision specification, - * it should simply be ignored. - */ - stream.precision = PFORMAT_IGNORE; - } - } + else + /* We've already seen a precision specification, + * so this is just junk; proceed to end game. + */ + state = PFORMAT_END; - else - /* out of context; give up on width and precision - * specifications for this conversion. - */ - state = PFORMAT_END; + /* Either way, we must not fall through here. + */ + break; - /* Mark as processed... - * we must not see `*' again, in this context. - */ - width_spec = NULL; - 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; + } - /* 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; + else + /* while as a precision specification, + * it should simply be ignored. + */ + stream.precision = PFORMAT_IGNORE; + } + } - case '+': - /* - * Print a leading sign with numeric output, - * for both positive and negative values. - */ - if( state == PFORMAT_INIT ) - stream.flags |= PFORMAT_POSITIVE; - break; + else + /* out of context; give up on width and precision + * specifications for this conversion. + */ + state = PFORMAT_END; - 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; + /* Mark as processed... + * we must not see `*' again, in this context. + */ + width_spec = NULL; + 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; + /* 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 '\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 '+': + /* + * Print a leading sign with numeric output, + * for both positive and negative values. + */ + if( state == PFORMAT_INIT ) + stream.flags |= PFORMAT_POSITIVE; + 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; - } + 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; - 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; + 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; - else if( state == PFORMAT_GET_PRECISION ) - /* - * while those following a precision indicator - * explicitly relate to precision. - */ - state = PFORMAT_SET_PRECISION; + 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; - 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'; + 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; + } - 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'; - } - } + 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 - { - /* 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; + 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; + } + } } } diff --git a/lib/libc/mingw/stdio/scanf.S b/lib/libc/mingw/stdio/scanf.S index 1e0bed9452..41ff64598c 100644 --- a/lib/libc/mingw/stdio/scanf.S +++ b/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. */ + movq 48(%rbp), %r10 /* func. */ - /* The first 32 bytes are in registers, but by spec, space - must still be reserved for them on the stack. Put the + /* 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 diff --git a/lib/libc/mingw/stdio/snprintf.c b/lib/libc/mingw/stdio/snprintf.c index 0bb5556fe3..2e43a67aee 100644 --- a/lib/libc/mingw/stdio/snprintf.c +++ b/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; } diff --git a/lib/libc/mingw/stdio/strtof.c b/lib/libc/mingw/stdio/strtof.c index 5697eb4b54..c4e4eb918a 100644 --- a/lib/libc/mingw/stdio/strtof.c +++ b/lib/libc/mingw/stdio/strtof.c @@ -4,8 +4,24 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #include +#include +#include +#include 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; } diff --git a/lib/libc/mingw/stdio/vfscanf.c b/lib/libc/mingw/stdio/vfscanf.c index dab72fe4a6..c3282a3edb 100644 --- a/lib/libc/mingw/stdio/vfscanf.c +++ b/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 diff --git a/lib/libc/mingw/stdio/vfwscanf.c b/lib/libc/mingw/stdio/vfwscanf.c index 52cf928354..f8e465d361 100644 --- a/lib/libc/mingw/stdio/vfwscanf.c +++ b/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 diff --git a/lib/libc/mingw/stdio/vsnprintf.c b/lib/libc/mingw/stdio/vsnprintf.c index 364186702b..772a23f660 100644 --- a/lib/libc/mingw/stdio/vsnprintf.c +++ b/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; } diff --git a/lib/libc/mingw/stdio/vsscanf.c b/lib/libc/mingw/stdio/vsscanf.c index 6c8fe5a56f..9b3b650ded 100644 --- a/lib/libc/mingw/stdio/vsscanf.c +++ b/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 diff --git a/lib/libc/mingw/stdio/vswscanf.c b/lib/libc/mingw/stdio/vswscanf.c index 941ed12057..01c811b32e 100644 --- a/lib/libc/mingw/stdio/vswscanf.c +++ b/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 diff --git a/lib/libc/mingw/stdio/vwscanf.c b/lib/libc/mingw/stdio/vwscanf.c index 8310498ffd..3360eefad1 100644 --- a/lib/libc/mingw/stdio/vwscanf.c +++ b/lib/libc/mingw/stdio/vwscanf.c @@ -10,12 +10,7 @@ #include #include -#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 diff --git a/src/mingw.zig b/src/mingw.zig index 23035fe72b..e02984ee19 100644 --- a/src/mingw.zig +++ b/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",