update mingw-w64 crt files to v10.0.0

This commit is contained in:
Andrew Kelley
2022-10-06 07:32:50 -07:00
parent e52931e50f
commit e4ed8c3f37
59 changed files with 1851 additions and 5256 deletions

View File

@@ -10,7 +10,7 @@
__declspec(dllimport) int __lconv_init (void);
int mingw_initcharmax = 0;
int __mingw_initcharmax = 0;
int _charmax = 255;

View File

@@ -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__)

View File

@@ -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)

View File

@@ -5,4 +5,4 @@
*/
/* 0:console, 1:windows. */
int mingw_app_type = 0;
int __mingw_app_type = 0;

View File

@@ -21,6 +21,7 @@
#include <stdarg.h>
#include <memory.h>
#include <internal.h>
#include <stdint.h>
#if defined(__CYGWIN__)
#include <wchar.h>
@@ -47,7 +48,7 @@
extern char __RUNTIME_PSEUDO_RELOC_LIST__;
extern char __RUNTIME_PSEUDO_RELOC_LIST_END__;
extern char __MINGW_LSYMBOL(_image_base__);
extern IMAGE_DOS_HEADER __MINGW_LSYMBOL(_image_base__);
void _pei386_runtime_relocator (void);
@@ -311,6 +312,7 @@ do_pseudo_reloc (void * start, void * end, void * base)
ptrdiff_t reloc_target = (ptrdiff_t) ((char *)end - (char*)start);
runtime_pseudo_reloc_v2 *v2_hdr = (runtime_pseudo_reloc_v2 *) start;
runtime_pseudo_reloc_item_v2 *r;
unsigned int bits;
/* A valid relocation list will contain at least one entry, and
* one v1 data structure (the smallest one) requires two DWORDs.
@@ -440,6 +442,23 @@ do_pseudo_reloc (void * start, void * end, void * base)
reldata -= ((ptrdiff_t) base + r->sym);
reldata += addr_imp;
bits = r->flags & 0xff;
if (bits < sizeof(ptrdiff_t)*8)
{
/* Check for overflows. We don't know if the target address is
* interpreted as a relative offset or as a truncated absolute
* address - to avoid false positives, allow offsets within the
* whole range of signed and unsigned N bits numbers, but error
* out for anything outside of that. Thus for relative offsets,
* this won't catch offsets that are only barely too large. */
ptrdiff_t max_unsigned = (1LL << bits) - 1;
ptrdiff_t min_signed = UINTPTR_MAX << (bits - 1);
if (reldata > max_unsigned || reldata < min_signed)
__report_error ("%d bit pseudo relocation at %p out of range, "
"targeting %p, yielding the value %p.\n",
bits, reloc_target, addr_imp, reldata);
}
/* Write the new relocation value back to *reloc_target */
switch ((r->flags & 0xff))
{

View File

@@ -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;

View File

@@ -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

View File

@@ -1,18 +1,15 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* Whether the linker provides __CTOR_LIST__ */
#define HAVE_CTOR_LIST 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdio.h> header file. */
#define HAVE_STDIO_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
@@ -52,7 +49,9 @@
/* Define to the version of this package. */
#define PACKAGE_VERSION "4.0b"
/* Define to 1 if you have the ANSI C header files. */
/* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#define STDC_HEADERS 1
/* Version number of package */

View File

@@ -1,7 +1,7 @@
#include <winbase.h>
#ifndef __LIBMSVCRT__
#error "This file should only be used in libmsvcrt.a"
#ifndef __LIBMSVCRT_OS__
#error "This file should only be used in libmsvcrt-os.a"
#endif
static inline HANDLE __mingw_get_msvcrt_handle(void)

View File

@@ -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

View File

@@ -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

View File

@@ -22,6 +22,8 @@ MigrateWinsockConfiguration
MigrateWinsockConfigurationEx
NPLoadNameSpaces
NSPStartup
; MSDN says ProcessSocketNotifications is from ws2_32.dll, not mswsock.dll
; ProcessSocketNotifications
SetServiceA
SetServiceW
StartWsdpService

View File

@@ -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

17
lib/libc/mingw/lib-common/query.def vendored Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -38,6 +38,7 @@ GetHostNameW
GetNameInfoW
InetNtopW
InetPtonW
ProcessSocketNotifications
SetAddrInfoExA
SetAddrInfoExW
WPUCompleteOverlappedRequest

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

17
lib/libc/mingw/lib32/query.def vendored Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -1,719 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _CEPHES_EMATH_H
#define _CEPHES_EMATH_H
/**
* This is a workaround for a gcc bug
*/
#define __restrict__
/* This file is extracted from S L Moshier's ioldoubl.c,
* modified for use in MinGW
*
* Extended precision arithmetic functions for long double I/O.
* This program has been placed in the public domain.
*/
/*
* Revision history:
*
* 5 Jan 84 PDP-11 assembly language version
* 6 Dec 86 C language version
* 30 Aug 88 100 digit version, improved rounding
* 15 May 92 80-bit long double support
*
* Author: S. L. Moshier.
*
* 6 Oct 02 Modified for MinGW by inlining utility routines,
* removing global variables, and splitting out strtold
* from _IO_ldtoa and _IO_ldtostr.
*
* Danny Smith <dannysmith@users.sourceforge.net>
*
*/
/* ieee.c
*
* Extended precision IEEE binary floating point arithmetic routines
*
* Numbers are stored in C language as arrays of 16-bit unsigned
* short integers. The arguments of the routines are pointers to
* the arrays.
*
*
* External e type data structure, simulates Intel 8087 chip
* temporary real format but possibly with a larger significand:
*
* NE-1 significand words (least significant word first,
* most significant bit is normally set)
* exponent (value = EXONE for 1.0,
* top bit is the sign)
*
*
* Internal data structure of a number (a "word" is 16 bits):
*
* ei[0] sign word (0 for positive, 0xffff for negative)
* ei[1] biased __exponent (value = EXONE for the number 1.0)
* ei[2] high guard word (always zero after normalization)
* ei[3]
* to ei[NI-2] significand (NI-4 significand words,
* most significant word first,
* most significant bit is set)
* ei[NI-1] low guard word (0x8000 bit is rounding place)
*
*
*
* Routines for external format numbers
*
* __asctoe64( string, &d ) ASCII string to long double
* __asctoeg( string, e, prec ) ASCII string to specified precision
* __e64toe( &d, e ) IEEE long double precision to e type
* __eadd( a, b, c ) c = b + a
* __eclear(e) e = 0
* __ecmp (a, b) Returns 1 if a > b, 0 if a == b,
* -1 if a < b, -2 if either a or b is a NaN.
* __ediv( a, b, c ) c = b / a
* __efloor( a, b ) truncate to integer, toward -infinity
* __efrexp( a, exp, s ) extract exponent and significand
* __eifrac( e, &l, frac ) e to long integer and e type fraction
* __euifrac( e, &l, frac ) e to unsigned long integer and e type fraction
* __einfin( e ) set e to infinity, leaving its sign alone
* __eldexp( a, n, b ) multiply by 2**n
* __emov( a, b ) b = a
* __emul( a, b, c ) c = b * a
* __eneg(e) e = -e
* __eround( a, b ) b = nearest integer value to a
* __esub( a, b, c ) c = b - a
* __e24toasc( &f, str, n ) single to ASCII string, n digits after decimal
* __e53toasc( &d, str, n ) double to ASCII string, n digits after decimal
* __e64toasc( &d, str, n ) long double to ASCII string
* __etoasc( e, str, n ) e to ASCII string, n digits after decimal
* __etoe24( e, &f ) convert e type to IEEE single precision
* __etoe53( e, &d ) convert e type to IEEE double precision
* __etoe64( e, &d ) convert e type to IEEE long double precision
* __eisneg( e ) 1 if sign bit of e != 0, else 0
* __eisinf( e ) 1 if e has maximum exponent (non-IEEE)
* or is infinite (IEEE)
* __eisnan( e ) 1 if e is a NaN
* __esqrt( a, b ) b = square root of a
*
*
* Routines for internal format numbers
*
* __eaddm( ai, bi ) add significands, bi = bi + ai
* __ecleaz(ei) ei = 0
* __ecleazs(ei) set ei = 0 but leave its sign alone
* __ecmpm( ai, bi ) compare significands, return 1, 0, or -1
* __edivm( ai, bi ) divide significands, bi = bi / ai
* __emdnorm(ai,l,s,exp) normalize and round off
* __emovi( a, ai ) convert external a to internal ai
* __emovo( ai, a ) convert internal ai to external a
* __emovz( ai, bi ) bi = ai, low guard word of bi = 0
* __emulm( ai, bi ) multiply significands, bi = bi * ai
* __enormlz(ei) left-justify the significand
* __eshdn1( ai ) shift significand and guards down 1 bit
* __eshdn8( ai ) shift down 8 bits
* __eshdn6( ai ) shift down 16 bits
* __eshift( ai, n ) shift ai n bits up (or down if n < 0)
* __eshup1( ai ) shift significand and guards up 1 bit
* __eshup8( ai ) shift up 8 bits
* __eshup6( ai ) shift up 16 bits
* __esubm( ai, bi ) subtract significands, bi = bi - ai
*
*
* The result is always normalized and rounded to NI-4 word precision
* after each arithmetic operation.
*
* Exception flags are NOT fully supported.
*
* Define INFINITY in mconf.h for support of infinity; otherwise a
* saturation arithmetic is implemented.
*
* Define NANS for support of Not-a-Number items; otherwise the
* arithmetic will never produce a NaN output, and might be confused
* by a NaN input.
* If NaN's are supported, the output of ecmp(a,b) is -2 if
* either a or b is a NaN. This means asking if(ecmp(a,b) < 0)
* may not be legitimate. Use if(ecmp(a,b) == -1) for less-than
* if in doubt.
* Signaling NaN's are NOT supported; they are treated the same
* as quiet NaN's.
*
* Denormals are always supported here where appropriate (e.g., not
* for conversion to DEC numbers).
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <math.h>
#include <locale.h>
#include <ctype.h>
#undef alloca
#define alloca __builtin_alloca
/* Don't build non-ANSI _IO_ldtoa. It is not thread safe. */
#ifndef USE_LDTOA
#define USE_LDTOA 0
#endif
/* Number of 16 bit words in external x type format */
#define NE 6
/* Number of 16 bit words in internal format */
#define NI (NE+3)
/* Array offset to exponent */
#define E 1
/* Array offset to high guard word */
#define M 2
/* Number of bits of precision */
#define NBITS ((NI-4)*16)
/* Maximum number of decimal digits in ASCII conversion
* = NBITS*log10(2)
*/
#define NDEC (NBITS*8/27)
/* The exponent of 1.0 */
#define EXONE (0x3fff)
#define mtherr(fname, code)
extern long double strtold (const char * __restrict__ s, char ** __restrict__ se);
extern int __asctoe64(const char * __restrict__ ss,
short unsigned int * __restrict__ y);
extern void __emul(const short unsigned int * a,
const short unsigned int * b,
short unsigned int * c);
extern int __ecmp(const short unsigned int * __restrict__ a,
const short unsigned int * __restrict__ b);
extern int __enormlz(short unsigned int *x);
extern int __eshift(short unsigned int *x, int sc);
extern void __eaddm(const short unsigned int * __restrict__ x,
short unsigned int * __restrict__ y);
extern void __esubm(const short unsigned int * __restrict__ x,
short unsigned int * __restrict__ y);
extern void __emdnorm(short unsigned int *s, int lost, int subflg,
int exp, int rcntrl, const int rndprc);
extern void __toe64(short unsigned int * __restrict__ a,
short unsigned int * __restrict__ b);
extern int __edivm(short unsigned int * __restrict__ den,
short unsigned int * __restrict__ num);
extern int __emulm(const short unsigned int * __restrict__ a,
short unsigned int * __restrict__ b);
extern void __emovi(const short unsigned int * __restrict__ a,
short unsigned int * __restrict__ b);
extern void __emovo(const short unsigned int * __restrict__ a,
short unsigned int * __restrict__ b);
#if USE_LDTOA
extern char * _IO_ldtoa(long double, int, int, int *, int *, char **);
extern void _IO_ldtostr(long double *x, char *string, int ndigs,
int flags, char fmt);
extern void __eiremain(short unsigned int * __restrict__ den,
short unsigned int *__restrict__ num,
short unsigned int *__restrict__ equot);
extern void __efloor(short unsigned int *x, short unsigned int *y);
extern void __eadd1(const short unsigned int * __restrict__ a,
const short unsigned int * __restrict__ b,
short unsigned int * __restrict__ c,
int subflg);
extern void __esub(const short unsigned int *a, const short unsigned int *b,
short unsigned int *c);
extern void __ediv(const short unsigned int *a, const short unsigned int *b,
short unsigned int *c);
extern void __e64toe(short unsigned int *pe, short unsigned int *y);
#endif
static __inline__ int __eisneg(const short unsigned int *x);
static __inline__ int __eisinf(const short unsigned int *x);
static __inline__ int __eisnan(const short unsigned int *x);
static __inline__ int __eiszero(const short unsigned int *a);
static __inline__ void __emovz(register const short unsigned int * __restrict__ a,
register short unsigned int * __restrict__ b);
static __inline__ void __eclear(register short unsigned int *x);
static __inline__ void __ecleaz(register short unsigned int *xi);
static __inline__ void __ecleazs(register short unsigned int *xi);
static __inline__ int __eiisinf(const short unsigned int *x);
static __inline__ int __eiisnan(const short unsigned int *x);
static __inline__ int __eiiszero(const short unsigned int *x);
static __inline__ void __enan_64(short unsigned int *nanptr);
static __inline__ void __enan_NBITS (short unsigned int *nanptr);
static __inline__ void __enan_NI16 (short unsigned int *nanptr);
static __inline__ void __einfin(register short unsigned int *x);
static __inline__ void __eneg(short unsigned int *x);
static __inline__ void __eshup1(register short unsigned int *x);
static __inline__ void __eshup8(register short unsigned int *x);
static __inline__ void __eshup6(register short unsigned int *x);
static __inline__ void __eshdn1(register short unsigned int *x);
static __inline__ void __eshdn8(register short unsigned int *x);
static __inline__ void __eshdn6(register short unsigned int *x);
/* Intel IEEE, low order words come first:
*/
#define IBMPC 1
/* Define 1 for ANSI C atan2() function
* See atan.c and clog.c.
*/
#define ANSIC 1
/*define VOLATILE volatile*/
#define VOLATILE
/* For 12-byte long doubles on an i386, pad a 16-bit short 0
* to the end of real constants initialized by integer arrays.
*
* #define XPD 0,
*
* Otherwise, the type is 10 bytes long and XPD should be
* defined blank.
*
* #define XPD
*/
#define XPD 0,
/* #define XPD */
#define NANS 1
/* NaN's require infinity support. */
#ifdef NANS
#ifndef INFINITY
#define INFINITY
#endif
#endif
/* This handles 64-bit long ints. */
#define LONGBITS (8 * sizeof(long))
#define NTEN 12
#define MAXP 4096
/*
; Clear out entire external format number.
;
; unsigned short x[];
; eclear( x );
*/
static __inline__ void __eclear(register short unsigned int *x)
{
memset(x, 0, NE * sizeof(unsigned short));
}
/* Move external format number from a to b.
*
* emov( a, b );
*/
static __inline__ void __emov(register const short unsigned int * __restrict__ a,
register short unsigned int * __restrict__ b)
{
memcpy(b, a, NE * sizeof(unsigned short));
}
/*
; Negate external format number
;
; unsigned short x[NE];
; eneg( x );
*/
static __inline__ void __eneg(short unsigned int *x)
{
#ifdef NANS
if (__eisnan(x))
return;
#endif
x[NE-1] ^= 0x8000; /* Toggle the sign bit */
}
/* Return 1 if external format number is negative,
* else return zero.
*/
static __inline__ int __eisneg(const short unsigned int *x)
{
#ifdef NANS
if (__eisnan(x))
return (0);
#endif
if (x[NE-1] & 0x8000)
return (1);
else
return (0);
}
/* Return 1 if external format number has maximum possible exponent,
* else return zero.
*/
static __inline__ int __eisinf(const short unsigned int *x)
{
if ((x[NE - 1] & 0x7fff) == 0x7fff)
{
#ifdef NANS
if (__eisnan(x))
return (0);
#endif
return (1);
}
else
return (0);
}
/* Check if e-type number is not a number.
*/
static __inline__ int __eisnan(const short unsigned int *x)
{
#ifdef NANS
int i;
/* NaN has maximum __exponent */
if ((x[NE - 1] & 0x7fff) == 0x7fff)
/* ... and non-zero significand field. */
for (i = 0; i < NE - 1; i++)
{
if (*x++ != 0)
return (1);
}
#endif
return (0);
}
/*
; Fill __entire number, including __exponent and significand, with
; largest possible number. These programs implement a saturation
; value that is an ordinary, legal number. A special value
; "infinity" may also be implemented; this would require tests
; for that value and implementation of special rules for arithmetic
; operations involving inifinity.
*/
static __inline__ void __einfin(register short unsigned int *x)
{
register int i;
#ifdef INFINITY
for (i = 0; i < NE - 1; i++)
*x++ = 0;
*x |= 32767;
#else
for (i = 0; i < NE - 1; i++)
*x++ = 0xffff;
*x |= 32766;
*(x - 5) = 0;
#endif
}
/* Clear out internal format number.
*/
static __inline__ void __ecleaz(register short unsigned int *xi)
{
memset(xi, 0, NI * sizeof(unsigned short));
}
/* same, but don't touch the sign. */
static __inline__ void __ecleazs(register short unsigned int *xi)
{
++xi;
memset(xi, 0, (NI-1) * sizeof(unsigned short));
}
/* Move internal format number from a to b.
*/
static __inline__ void __emovz(register const short unsigned int * __restrict__ a,
register short unsigned int * __restrict__ b)
{
memcpy(b, a, (NI-1) * sizeof(unsigned short));
b[NI - 1] = 0;
}
/* Return nonzero if internal format number is a NaN.
*/
static __inline__ int __eiisnan (const short unsigned int *x)
{
int i;
if ((x[E] & 0x7fff) == 0x7fff)
{
for (i = M + 1; i < NI; i++ )
{
if (x[i] != 0)
return (1);
}
}
return (0);
}
/* Return nonzero if external format number is zero. */
static __inline__ int
__eiszero(const short unsigned int * a)
{
union {
long double ld;
unsigned short sh[8];
} av;
av.ld = 0.0;
memcpy (av.sh, a, 12);
if (av.ld == 0.0)
return (1);
return (0);
}
/* Return nonzero if internal format number is zero. */
static __inline__ int
__eiiszero(const short unsigned int * ai)
{
int i;
/* skip the sign word */
for (i = 1; i < NI - 1; i++ )
{
if (ai[i] != 0)
return (0);
}
return (1);
}
/* Return nonzero if internal format number is infinite. */
static __inline__ int
__eiisinf (const unsigned short *x)
{
#ifdef NANS
if (__eiisnan (x))
return (0);
#endif
if ((x[E] & 0x7fff) == 0x7fff)
return (1);
return (0);
}
/*
; Compare significands of numbers in internal format.
; Guard words are included in the comparison.
;
; unsigned short a[NI], b[NI];
; cmpm( a, b );
;
; for the significands:
; returns +1 if a > b
; 0 if a == b
; -1 if a < b
*/
static __inline__ int __ecmpm(register const short unsigned int * __restrict__ a,
register const short unsigned int * __restrict__ b)
{
int i;
a += M; /* skip up to significand area */
b += M;
for (i = M; i < NI; i++)
{
if( *a++ != *b++ )
goto difrnt;
}
return(0);
difrnt:
if ( *(--a) > *(--b) )
return (1);
else
return (-1);
}
/*
; Shift significand down by 1 bit
*/
static __inline__ void __eshdn1(register short unsigned int *x)
{
register unsigned short bits;
int i;
x += M; /* point to significand area */
bits = 0;
for (i = M; i < NI; i++ )
{
if (*x & 1)
bits |= 1;
*x >>= 1;
if (bits & 2)
*x |= 0x8000;
bits <<= 1;
++x;
}
}
/*
; Shift significand up by 1 bit
*/
static __inline__ void __eshup1(register short unsigned int *x)
{
register unsigned short bits;
int i;
x += NI-1;
bits = 0;
for (i = M; i < NI; i++)
{
if (*x & 0x8000)
bits |= 1;
*x <<= 1;
if (bits & 2)
*x |= 1;
bits <<= 1;
--x;
}
}
/*
; Shift significand down by 8 bits
*/
static __inline__ void __eshdn8(register short unsigned int *x)
{
register unsigned short newbyt, oldbyt;
int i;
x += M;
oldbyt = 0;
for (i = M; i < NI; i++)
{
newbyt = *x << 8;
*x >>= 8;
*x |= oldbyt;
oldbyt = newbyt;
++x;
}
}
/*
; Shift significand up by 8 bits
*/
static __inline__ void __eshup8(register short unsigned int *x)
{
int i;
register unsigned short newbyt, oldbyt;
x += NI - 1;
oldbyt = 0;
for (i = M; i < NI; i++)
{
newbyt = *x >> 8;
*x <<= 8;
*x |= oldbyt;
oldbyt = newbyt;
--x;
}
}
/*
; Shift significand up by 16 bits
*/
static __inline__ void __eshup6(register short unsigned int *x)
{
int i;
register unsigned short *p;
p = x + M;
x += M + 1;
for (i = M; i < NI - 1; i++)
*p++ = *x++;
*p = 0;
}
/*
; Shift significand down by 16 bits
*/
static __inline__ void __eshdn6(register short unsigned int *x)
{
int i;
register unsigned short *p;
x += NI - 1;
p = x + 1;
for (i = M; i < NI - 1; i++)
*(--p) = *(--x);
*(--p) = 0;
}
/*
; Add significands
; x + y replaces y
*/
static __inline__ void __enan_64(unsigned short* nanptr)
{
int i;
for (i = 0; i < 3; i++)
*nanptr++ = 0;
*nanptr++ = 0xc000;
*nanptr++ = 0x7fff;
*nanptr = 0;
return;
}
static __inline__ void __enan_NBITS(unsigned short* nanptr)
{
int i;
for (i = 0; i < NE - 2; i++)
*nanptr++ = 0;
*nanptr++ = 0xc000;
*nanptr = 0x7fff;
return;
}
static __inline__ void __enan_NI16(unsigned short* nanptr)
{
int i;
*nanptr++ = 0;
*nanptr++ = 0x7fff;
*nanptr++ = 0;
*nanptr++ = 0xc000;
for (i = 4; i < NI; i++)
*nanptr++ = 0;
return;
}
#endif /* _CEPHES_EMATH_H */

View File

@@ -5,6 +5,7 @@
*/
#include <math.h>
#include <errno.h>
#include <float.h>
#include "fastmath.h"
/* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */
@@ -21,13 +22,53 @@ double asinh(double x)
return x;
#endif
/* Use log1p to avoid cancellation with small x. Put
x * x in denom, so overflow is harmless.
asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0)
= log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0)) */
/* NB the previous formula
z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0));
was defective in two ways:
1: It ommitted required brackets:
z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0)));
^ ^
so would still overflow for large z.
2: Even with the brackets, it still degraded quickly for large z
(where z*z+1 == z*z).
e.g. asinh (sinh 356.0)) gave 355.30685281944005
*/
z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0));
const double asinhCutover = pow(2,DBL_MAX_EXP/2); // 1.3407807929943e+154
return ( x > 0.0 ? z : -z);
if (z < asinhCutover)
/* After excluding large values, the rearranged formula gives better results
the original formula log(z + sqrt(z * z + 1.0)) for very small z.
e.g. rearranged asinh(sinh 2e-301)) = 2e-301
original asinh(sinh 2e-301)) = 0.
asinh(z) = log (z + sqrt (z * z + 1.0))
= log1p (z + sqrt (z * z + 1.0) - 1.0)
= log1p (z + (sqrt (z * z + 1.0) - 1.0)
* (sqrt (z * z + 1.0) + 1.0)
/ (sqrt (z * z + 1.0) + 1.0))
= log1p (z + ((z * z + 1.0) - 1.0)
/ (sqrt (z * z + 1.0) + 1.0))
= log1p (z + z * z / (sqrt (z * z + 1.0) + 1.0))
*/
z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0)));
else
/* above this, z*z+1 == z*z, so we can simplify
(and avoid z*z being infinity).
asinh(z) = log (z + sqrt (z * z + 1.0))
= log (z + sqrt (z * z ))
= log (2 * z)
= log 2 + log z
Choosing asinhCutover is a little tricky.
We'd like something that's based on the nature of
the numeric type (DBL_MAX_EXP, etc).
If c = asinhCutover, then we need:
(1) c*c == c*c + 1
(2) log (2*c) = log 2 + log c.
For float:
9.490626562425156e7 is the smallest value that
achieves (1), but it fails (2). (It only just fails,
but enough to make the function erroneously non-monotonic).
*/
z = __fast_log(2) + __fast_log(z);
return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
}

View File

@@ -5,6 +5,7 @@
*/
#include <math.h>
#include <errno.h>
#include <float.h>
#include "fastmath.h"
/* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */
@@ -21,13 +22,13 @@ float asinhf(float x)
return x;
#endif
/* See commentary in asinh */
const float asinhCutover = pow(2,FLT_MAX_EXP/2);
/* Use log1p to avoid cancellation with small x. Put
x * x in denom, so overflow is harmless.
asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0)
= log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0)) */
z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0));
return ( x > 0.0 ? z : -z);
if (z < asinhCutover)
z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0)));
//z = __fast_log(z + __fast_sqrt(z * z + 1.0));
else
z = __fast_log(2) + __fast_log(z);
return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
}

View File

@@ -5,6 +5,7 @@
*/
#include <math.h>
#include <errno.h>
#include <float.h>
#include "fastmath.h"
/* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */
@@ -22,12 +23,12 @@ long double asinhl(long double x)
return x;
#endif
/* Use log1p to avoid cancellation with small x. Put
x * x in denom, so overflow is harmless.
asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0)
= log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0)) */
/* See commentary in asinh */
const long double asinhCutover = powl(2,LDBL_MAX_EXP/2);
z = __fast_log1pl (z + z * z / (__fast_sqrtl (z * z + 1.0L) + 1.0L));
return ( x > 0.0 ? z : -z);
if (z < asinhCutover)
z = __fast_log1pl (z + z * (z / (__fast_sqrtl (z * z + 1.0) + 1.0)));
else
z = __fast_logl(2) + __fast_logl(z);
return copysignl(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0.
}

View File

@@ -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.
}

View File

@@ -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.
}

View File

@@ -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.
}

View File

@@ -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;
}
}

View File

@@ -2,18 +2,11 @@
#define ___lc_codepage_func __dummy____lc_codepage_func
#include <windows.h>
#include <locale.h>
#include <msvcrt.h>
#undef __lc_codepage
#undef ___lc_codepage_func
#include "mb_wc_common.h"
static unsigned int *msvcrt__lc_codepage;
static unsigned int __cdecl msvcrt___lc_codepage_func(void)
{
return *msvcrt__lc_codepage;
}
static unsigned int __cdecl setlocale_codepage_hack(void)
{
/* locale :: "lang[_country[.code_page]]" | ".code_page" */
@@ -21,14 +14,23 @@ static unsigned int __cdecl setlocale_codepage_hack(void)
return cp_str ? atoi(cp_str + 1) : 0;
}
#ifndef __LIBMSVCRT_OS__
unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = setlocale_codepage_hack;
#else
#include <msvcrt.h>
static unsigned int *msvcrt__lc_codepage;
static unsigned int __cdecl msvcrt___lc_codepage_func(void)
{
return *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)();
}

View File

@@ -1,4 +1,7 @@
#include <stdio.h>
#include <float.h>
#include <errno.h>
#include <math.h>
extern long double __cdecl
__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr);
@@ -9,7 +12,20 @@ __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndP
double __cdecl
__mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr)
{
return (double) __mingw_wcstold (_Str, _EndPtr);
long double ret = __mingw_wcstold (_Str, _EndPtr);
if (isfinite(ret)) {
/* Check for cases that aren't out of range for long doubles, but that are
* for doubles. */
if (ret > DBL_MAX)
errno = ERANGE;
else if (ret < -DBL_MAX)
errno = ERANGE;
else if (ret > 0 && ret < DBL_MIN)
errno = ERANGE;
else if (ret < 0 && ret > -DBL_MIN)
errno = ERANGE;
}
return ret;
}

View File

@@ -1,32 +1,74 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/* Wide char wrapper for strtold
* Revision history:
* 6 Nov 2002 Initial version.
* 25 Aug 2006 Don't use strtold internal functions.
*
* Contributor: Danny Smith <dannysmith@users.sourceforege.net>
*/
/* This routine has been placed in the public domain.*/
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
#include <stdlib.h>
#include <string.h>
#include <mbstring.h>
long double __cdecl
__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr);
#include "mb_wc_common.h"
long double __cdecl
__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr)
long double __mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
{
long double r;
char *n, *ep = NULL;
size_t l, l2;
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;
}

View File

@@ -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;
}

View File

@@ -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 */

View File

@@ -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;
}

View File

@@ -3,72 +3,10 @@
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/* Wide char wrapper for strtold
* Revision history:
* 6 Nov 2002 Initial version.
* 25 Aug 2006 Don't use strtold internal functions.
*
* Contributor: Danny Smith <dannysmith@users.sourceforege.net>
*/
/* This routine has been placed in the public domain.*/
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include <locale.h>
#include <wchar.h>
#include <stdlib.h>
#include <string.h>
#include <mbstring.h>
#include "mb_wc_common.h"
long double wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
{
char * cs;
char * cse;
unsigned int i;
long double ret;
const unsigned int cp = ___lc_codepage_func();
/* Allocate enough room for (possibly) mb chars */
cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX);
if (cp == 0) /* C locale */
{
for (i = 0; (wcs[i] != 0) && wcs[i] <= 255; i++)
cs[i] = (char) wcs[i];
cs[i] = '\0';
}
else
{
int nbytes = -1;
int mb_len = 0;
/* loop through till we hit null or invalid character */
for (i = 0; (wcs[i] != 0) && (nbytes != 0); i++)
{
nbytes = WideCharToMultiByte(cp, WC_COMPOSITECHECK | WC_SEPCHARS,
wcs + i, 1, cs + mb_len, MB_CUR_MAX,
NULL, NULL);
mb_len += nbytes;
}
cs[mb_len] = '\0';
}
ret = strtold (cs, &cse);
if (wcse)
{
/* Make sure temp mbstring has 0 at cse. */
*cse = '\0';
i = MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, cs, -1, NULL, 0);
if (i > 0)
i -= 1; /* Remove zero terminator from length. */
*wcse = (wchar_t *) wcs + i;
}
free (cs);
return ret;
return __mingw_wcstold(wcs, wcse);
}

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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;
}

View File

@@ -4,8 +4,24 @@
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <stdlib.h>
#include <float.h>
#include <errno.h>
#include <math.h>
float strtof( const char *nptr, char **endptr)
{
return (strtod(nptr, endptr));
double ret = strtod(nptr, endptr);
if (isfinite(ret)) {
/* Check for cases that aren't out of range for doubles, but that are
* for floats. */
if (ret > FLT_MAX)
errno = ERANGE;
else if (ret < -FLT_MAX)
errno = ERANGE;
else if (ret > 0 && ret < FLT_MIN)
errno = ERANGE;
else if (ret < 0 && ret > -FLT_MIN)
errno = ERANGE;
}
return ret;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -10,12 +10,7 @@
#include <wchar.h>
#include <stdio.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wimplicit-function-declaration"
int __ms_vwscanf (const wchar_t * __restrict__ format, va_list arg)
{
return __ms_vfwscanf(stdin, format, arg);
}
#pragma clang diagnostic pop

View File

@@ -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",