commit 40d53a7bc5ef18607266790e99fa693ba4344645 (tree)
parent c95a9e978582ca96bf5462c6bfdd40b934e9ba92
Author: Rocknest <35231115+Rocknest@users.noreply.github.com>
Date: Thu, 17 Oct 2019 01:57:29 +0300
Merge branch 'master' into docs-local
Diffstat:
104 files changed, 12796 insertions(+), 386 deletions(-)
diff --git a/ci/azure/windows_script.bat b/ci/azure/windows_script.bat
@@ -19,7 +19,7 @@ mkdir %ZIGBUILDDIR%
cd %ZIGBUILDDIR%
REM Here we use MinSizeRel instead of Release to work around https://github.com/ziglang/zig/issues/3024
cmake.exe .. -Thost=x64 -G"Visual Studio 16 2019" -A x64 "-DCMAKE_INSTALL_PREFIX=%ZIGINSTALLDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=MinSizeRel || exit /b
-msbuild /p:Configuration=MinSizeRel INSTALL.vcxproj || exit /b
+msbuild /maxcpucount /p:Configuration=MinSizeRel INSTALL.vcxproj || exit /b
"%ZIGINSTALLDIR%\bin\zig.exe" build test || exit /b
diff --git a/lib/libc/include/any-windows-any/intrin.h b/lib/libc/include/any-windows-any/intrin.h
@@ -50,7 +50,7 @@
* On GCC 4.9 we may always include those headers. On older GCCs, we may do it only if CPU
* features used by them are enabled, so we need to check macros like __SSE__ or __MMX__ first.
*/
-#if __MINGW_GNUC_PREREQ(4, 9)
+#if __MINGW_GNUC_PREREQ(4, 9) || defined(__clang__)
#define __MINGW_FORCE_SYS_INTRINS
#endif
diff --git a/lib/libc/mingw/lib-common/bcrypt.def b/lib/libc/mingw/lib-common/bcrypt.def
@@ -0,0 +1,65 @@
+LIBRARY "bcrypt.dll"
+EXPORTS
+BCryptAddContextFunction
+BCryptAddContextFunctionProvider
+BCryptCloseAlgorithmProvider
+BCryptConfigureContext
+BCryptConfigureContextFunction
+BCryptCreateContext
+BCryptCreateHash
+BCryptCreateMultiHash
+BCryptDecrypt
+BCryptDeleteContext
+BCryptDeriveKey
+BCryptDeriveKeyCapi
+BCryptDeriveKeyPBKDF2
+BCryptDestroyHash
+BCryptDestroyKey
+BCryptDestroySecret
+BCryptDuplicateHash
+BCryptDuplicateKey
+BCryptEncrypt
+BCryptEnumAlgorithms
+BCryptEnumContextFunctionProviders
+BCryptEnumContextFunctions
+BCryptEnumContexts
+BCryptEnumProviders
+BCryptEnumRegisteredProviders
+BCryptExportKey
+BCryptFinalizeKeyPair
+BCryptFinishHash
+BCryptFreeBuffer
+BCryptGenRandom
+BCryptGenerateKeyPair
+BCryptGenerateSymmetricKey
+BCryptGetFipsAlgorithmMode
+BCryptGetProperty
+BCryptHashData
+BCryptImportKey
+BCryptImportKeyPair
+BCryptKeyDerivation
+BCryptOpenAlgorithmProvider
+BCryptProcessMultiOperations
+BCryptQueryContextConfiguration
+BCryptQueryContextFunctionConfiguration
+BCryptQueryContextFunctionProperty
+BCryptQueryProviderRegistration
+BCryptRegisterConfigChangeNotify
+BCryptRegisterProvider
+BCryptRemoveContextFunction
+BCryptRemoveContextFunctionProvider
+BCryptResolveProviders
+BCryptSecretAgreement
+BCryptSetAuditingInterface
+BCryptSetContextFunctionProperty
+BCryptSetProperty
+BCryptSignHash
+BCryptUnregisterConfigChangeNotify
+BCryptUnregisterProvider
+BCryptVerifySignature
+GetAsymmetricEncryptionInterface
+GetCipherInterface
+GetHashInterface
+GetRngInterface
+GetSecretAgreementInterface
+GetSignatureInterface
diff --git a/lib/libc/mingw/lib-common/comctl32.def b/lib/libc/mingw/lib-common/comctl32.def
@@ -0,0 +1,125 @@
+LIBRARY COMCTL32.dll
+EXPORTS
+MenuHelp
+ShowHideMenuCtl
+GetEffectiveClientRect
+DrawStatusTextA
+CreateStatusWindowA
+CreateToolbar
+CreateMappedBitmap
+DPA_LoadStream
+DPA_SaveStream
+DPA_Merge
+CreatePropertySheetPage
+MakeDragList
+LBItemFromPt
+DrawInsert
+CreateUpDownControl
+InitCommonControls
+CreatePropertySheetPageA
+CreatePropertySheetPageW
+CreateStatusWindow
+CreateStatusWindowW
+CreateToolbarEx
+DestroyPropertySheetPage
+DllGetVersion
+DllInstall
+DrawStatusText
+DrawStatusTextW
+FlatSB_EnableScrollBar
+FlatSB_GetScrollInfo
+FlatSB_GetScrollPos
+FlatSB_GetScrollProp
+FlatSB_GetScrollPropPtr
+FlatSB_GetScrollRange
+FlatSB_SetScrollInfo
+FlatSB_SetScrollPos
+FlatSB_SetScrollProp
+FlatSB_SetScrollRange
+FlatSB_ShowScrollBar
+GetMUILanguage
+ImageList_Add
+ImageList_AddIcon
+ImageList_AddMasked
+ImageList_BeginDrag
+ImageList_Copy
+ImageList_Create
+ImageList_Destroy
+ImageList_DragEnter
+ImageList_DragLeave
+ImageList_DragMove
+ImageList_DragShowNolock
+ImageList_Draw
+ImageList_DrawEx
+ImageList_DrawIndirect
+ImageList_Duplicate
+ImageList_EndDrag
+ImageList_GetBkColor
+ImageList_GetDragImage
+ImageList_GetFlags
+ImageList_GetIcon
+ImageList_GetIconSize
+ImageList_GetImageCount
+ImageList_GetImageInfo
+ImageList_GetImageRect
+ImageList_LoadImage
+ImageList_LoadImageA
+ImageList_LoadImageW
+ImageList_Merge
+ImageList_Read
+ImageList_Remove
+ImageList_Replace
+ImageList_ReplaceIcon
+ImageList_SetBkColor
+ImageList_SetDragCursorImage
+ImageList_SetFilter
+ImageList_SetFlags
+ImageList_SetIconSize
+ImageList_SetImageCount
+ImageList_SetOverlayImage
+ImageList_Write
+InitCommonControlsEx
+InitMUILanguage
+InitializeFlatSB
+LoadIconMetric
+PropertySheet
+PropertySheetA
+PropertySheetW
+RegisterClassNameW
+UninitializeFlatSB
+_TrackMouseEvent
+FreeMRUList
+Str_SetPtrW
+DSA_Create
+DSA_Destroy
+DSA_GetItem
+DSA_GetItemPtr
+DSA_InsertItem
+DSA_SetItem
+DSA_DeleteItem
+DSA_DeleteAllItems
+DPA_Create
+DPA_Destroy
+DPA_Grow
+DPA_Clone
+DPA_GetPtr
+DPA_GetPtrIndex
+DPA_InsertPtr
+DPA_SetPtr
+DPA_DeletePtr
+DPA_DeleteAllPtrs
+DPA_Sort
+DPA_Search
+DPA_CreateEx
+DPA_EnumCallback
+DPA_DestroyCallback
+DSA_EnumCallback
+DSA_DestroyCallback
+CreateMRUListW
+AddMRUStringW
+EnumMRUListW
+SetWindowSubclass
+RemoveWindowSubclass
+DefSubclassProc
+TaskDialog
+TaskDialogIndirect
diff --git a/lib/libc/mingw/lib-common/comdlg32.def b/lib/libc/mingw/lib-common/comdlg32.def
@@ -0,0 +1,34 @@
+;
+; Exports of file comdlg32.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY comdlg32.dll
+EXPORTS
+ChooseColorA
+ChooseColorW
+ChooseFontA
+ChooseFontW
+CommDlgExtendedError
+FindTextA
+FindTextW
+GetFileTitleA
+GetFileTitleW
+GetOpenFileNameA
+GetOpenFileNameW
+GetSaveFileNameA
+GetSaveFileNameW
+LoadAlterBitmap
+PageSetupDlgA
+PageSetupDlgW
+PrintDlgA
+PrintDlgExA
+PrintDlgExW
+PrintDlgW
+ReplaceTextA
+ReplaceTextW
+Ssync_ANSI_UNICODE_Struct_For_WOW
+WantArrows
+dwLBSubclass
+dwOKSubclass
diff --git a/lib/libc/mingw/lib-common/crypt32.def b/lib/libc/mingw/lib-common/crypt32.def
@@ -0,0 +1,300 @@
+LIBRARY "CRYPT32.dll"
+EXPORTS
+ChainWlxLogoffEvent
+CloseCertPerformanceData
+CollectCertPerformanceData
+OpenCertPerformanceData
+CryptObjectLocatorFree
+CryptObjectLocatorGet
+CryptObjectLocatorGetContent
+CryptObjectLocatorGetUpdated
+CryptObjectLocatorInitialize
+CryptObjectLocatorIsChanged
+CryptObjectLocatorRelease
+I_PFXImportCertStoreEx
+CertAddCRLContextToStore
+CertAddCRLLinkToStore
+CertAddCTLContextToStore
+CertAddCTLLinkToStore
+CertAddCertificateContextToStore
+CertAddCertificateLinkToStore
+CertAddEncodedCRLToStore
+CertAddEncodedCTLToStore
+CertAddEncodedCertificateToStore
+CertAddEncodedCertificateToSystemStoreA
+CertAddEncodedCertificateToSystemStoreW
+CertAddEnhancedKeyUsageIdentifier
+CertAddRefServerOcspResponse
+CertAddRefServerOcspResponseContext
+CertAddSerializedElementToStore
+CertAddStoreToCollection
+CertAlgIdToOID
+CertCloseServerOcspResponse
+CertCloseStore
+CertCompareCertificate
+CertCompareCertificateName
+CertCompareIntegerBlob
+CertComparePublicKeyInfo
+CertControlStore
+CertCreateCRLContext
+CertCreateCTLContext
+CertCreateCTLEntryFromCertificateContextProperties
+CertCreateCertificateChainEngine
+CertCreateCertificateContext
+CertCreateContext
+CertCreateSelfSignCertificate
+CertDeleteCRLFromStore
+CertDeleteCTLFromStore
+CertDeleteCertificateFromStore
+CertDuplicateCRLContext
+CertDuplicateCTLContext
+CertDuplicateCertificateChain
+CertDuplicateCertificateContext
+CertDuplicateStore
+CertEnumCRLContextProperties
+CertEnumCRLsInStore
+CertEnumCTLContextProperties
+CertEnumCTLsInStore
+CertEnumCertificateContextProperties
+CertEnumCertificatesInStore
+CertEnumPhysicalStore
+CertEnumSubjectInSortedCTL
+CertEnumSystemStore
+CertEnumSystemStoreLocation
+CertFindAttribute
+CertFindCRLInStore
+CertFindCTLInStore
+CertFindCertificateInCRL
+CertFindCertificateInStore
+CertFindChainInStore
+CertFindExtension
+CertFindRDNAttr
+CertFindSubjectInCTL
+CertFindSubjectInSortedCTL
+CertFreeCRLContext
+CertFreeCTLContext
+CertFreeCertificateChain
+CertFreeCertificateChainEngine
+CertFreeCertificateChainList
+CertFreeCertificateContext
+CertFreeServerOcspResponseContext
+CertGetCRLContextProperty
+CertGetCRLFromStore
+CertGetCTLContextProperty
+CertGetCertificateChain
+CertGetCertificateContextProperty
+CertGetEnhancedKeyUsage
+CertGetIntendedKeyUsage
+CertGetIssuerCertificateFromStore
+CertGetNameStringA
+CertGetNameStringW
+CertGetPublicKeyLength
+CertGetServerOcspResponseContext
+CertGetStoreProperty
+CertGetSubjectCertificateFromStore
+CertGetValidUsages
+CertIsRDNAttrsInCertificateName
+CertIsStrongHashToSign
+CertIsValidCRLForCertificate
+CertIsWeakHash
+CertNameToStrA
+CertNameToStrW
+CertOIDToAlgId
+CertOpenServerOcspResponse
+CertOpenStore
+CertOpenSystemStoreA
+CertOpenSystemStoreW
+CertRDNValueToStrA
+CertRDNValueToStrW
+CertRegisterPhysicalStore
+CertRegisterSystemStore
+CertRemoveEnhancedKeyUsageIdentifier
+CertRemoveStoreFromCollection
+CertResyncCertificateChainEngine
+CertRetrieveLogoOrBiometricInfo
+CertSaveStore
+CertSelectCertificateChains
+CertSerializeCRLStoreElement
+CertSerializeCTLStoreElement
+CertSerializeCertificateStoreElement
+CertSetCRLContextProperty
+CertSetCTLContextProperty
+CertSetCertificateContextPropertiesFromCTLEntry
+CertSetCertificateContextProperty
+CertSetEnhancedKeyUsage
+CertSetStoreProperty
+CertStrToNameA
+CertStrToNameW
+CertUnregisterPhysicalStore
+CertUnregisterSystemStore
+CertVerifyCRLRevocation
+CertVerifyCRLTimeValidity
+CertVerifyCTLUsage
+CertVerifyCertificateChainPolicy
+CertVerifyRevocation
+CertVerifySubjectCertificateContext
+CertVerifyTimeValidity
+CertVerifyValidityNesting
+CryptAcquireCertificatePrivateKey
+CryptBinaryToStringA
+CryptBinaryToStringW
+CryptCloseAsyncHandle
+CryptCreateAsyncHandle
+CryptCreateKeyIdentifierFromCSP
+CryptDecodeMessage
+CryptDecodeObject
+CryptDecodeObjectEx
+CryptDecryptAndVerifyMessageSignature
+CryptDecryptMessage
+CryptEncodeObject
+CryptEncodeObjectEx
+CryptEncryptMessage
+CryptEnumKeyIdentifierProperties
+CryptEnumOIDFunction
+CryptEnumOIDInfo
+CryptExportPKCS8
+CryptExportPublicKeyInfo
+CryptExportPublicKeyInfoEx
+CryptExportPublicKeyInfoFromBCryptKeyHandle
+CryptFindCertificateKeyProvInfo
+CryptFindLocalizedName
+CryptFindOIDInfo
+CryptFormatObject
+CryptFreeOIDFunctionAddress
+CryptGetAsyncParam
+CryptGetDefaultOIDDllList
+CryptGetDefaultOIDFunctionAddress
+CryptGetKeyIdentifierProperty
+CryptGetMessageCertificates
+CryptGetMessageSignerCount
+CryptGetOIDFunctionAddress
+CryptGetOIDFunctionValue
+CryptGetDefaultProviderA
+CryptGetDefaultProviderW
+CryptHashCertificate
+CryptHashCertificate2
+CryptHashMessage
+CryptHashPublicKeyInfo
+CryptHashToBeSigned
+CryptImportPKCS8
+CryptImportPublicKeyInfo
+CryptImportPublicKeyInfoEx
+CryptImportPublicKeyInfoEx2
+CryptInitOIDFunctionSet
+CryptInstallDefaultContext
+CryptInstallOIDFunctionAddress
+CryptLoadSip
+CryptMemAlloc
+CryptMemFree
+CryptMemRealloc
+CryptMsgCalculateEncodedLength
+CryptMsgClose
+CryptMsgControl
+CryptMsgCountersign
+CryptMsgCountersignEncoded
+CryptMsgDuplicate
+CryptMsgEncodeAndSignCTL
+CryptMsgGetAndVerifySigner
+CryptMsgGetParam
+CryptMsgOpenToDecode
+CryptMsgOpenToEncode
+CryptMsgSignCTL
+CryptMsgUpdate
+CryptMsgVerifyCountersignatureEncoded
+CryptMsgVerifyCountersignatureEncodedEx
+CryptProtectData
+CryptProtectMemory
+CryptQueryObject
+CryptRegisterDefaultOIDFunction
+CryptRegisterOIDFunction
+CryptRegisterOIDInfo
+CryptRetrieveTimeStamp
+CryptSIPAddProvider
+CryptSIPCreateIndirectData
+CryptSIPGetCaps
+CryptSIPGetSealedDigest
+CryptSIPGetSignedDataMsg
+CryptSIPLoad
+CryptSIPPutSignedDataMsg
+CryptSIPRemoveProvider
+CryptSIPRemoveSignedDataMsg
+CryptSIPRetrieveSubjectGuid
+CryptSIPRetrieveSubjectGuidForCatalogFile
+CryptSIPVerifyIndirectData
+CryptSetAsyncParam
+CryptSetKeyIdentifierProperty
+CryptSetOIDFunctionValue
+CryptSignAndEncodeCertificate
+CryptSignAndEncryptMessage
+CryptSignCertificate
+CryptSignMessage
+CryptSignMessageWithKey
+CryptStringToBinaryA
+CryptStringToBinaryW
+CryptUninstallDefaultContext
+CryptUnprotectData
+CryptUnprotectMemory
+CryptUnregisterDefaultOIDFunction
+CryptUnregisterOIDFunction
+CryptUnregisterOIDInfo
+CryptUpdateProtectedState
+CryptVerifyCertificateSignature
+CryptVerifyCertificateSignatureEx
+CryptVerifyDetachedMessageHash
+CryptVerifyDetachedMessageSignature
+CryptVerifyMessageHash
+CryptVerifyMessageSignature
+CryptVerifyMessageSignatureWithKey
+CryptVerifyTimeStampSignature
+I_CertChainEngineIsDisallowedCertificate
+I_CertDiagControl
+I_CertFinishSslHandshake
+I_CertProcessSslHandshake
+I_CertProtectFunction
+I_CertSrvProtectFunction
+I_CertSyncStore
+I_CertUpdateStore
+I_CryptAddRefLruEntry
+I_CryptAddSmartCardCertToStore
+I_CryptAllocTls
+I_CryptCreateLruCache
+I_CryptCreateLruEntry
+I_CryptDetachTls
+I_CryptDisableLruOfEntries
+I_CryptEnableLruOfEntries
+I_CryptEnumMatchingLruEntries
+I_CryptFindLruEntry
+I_CryptFindLruEntryData
+I_CryptFindSmartCardCertInStore
+I_CryptFlushLruCache
+I_CryptFreeLruCache
+I_CryptFreeTls
+I_CryptGetAsn1Decoder
+I_CryptGetAsn1Encoder
+I_CryptGetDefaultCryptProv
+I_CryptGetDefaultCryptProvForEncrypt
+I_CryptGetFileVersion
+I_CryptGetLruEntryData
+I_CryptGetLruEntryIdentifier
+I_CryptGetOssGlobal
+I_CryptGetTls
+I_CryptAllocTlsEx
+I_CryptInsertLruEntry
+I_CryptInstallAsn1Module
+I_CryptInstallOssGlobal
+I_CryptReadTrustedPublisherDWORDValueFromRegistry
+I_CryptRegisterSmartCardStore
+I_CryptReleaseLruEntry
+I_CryptRemoveLruEntry
+I_CryptSetTls
+I_CryptTouchLruEntry
+I_CryptUninstallAsn1Module
+I_CryptUninstallOssGlobal
+I_CryptUnregisterSmartCardStore
+I_CryptWalkAllLruCacheEntries
+PFXExportCertStore
+PFXExportCertStore2
+PFXExportCertStoreEx
+PFXImportCertStore
+PFXIsPFXBlob
+PFXVerifyPassword
diff --git a/lib/libc/mingw/lib-common/cryptnet.def b/lib/libc/mingw/lib-common/cryptnet.def
@@ -0,0 +1,23 @@
+LIBRARY "CRYPTNET.dll"
+EXPORTS
+CertDllVerifyCTLUsage
+CertDllVerifyRevocation
+CryptnetWlxLogoffEvent
+I_CryptConvertIriToAsciiOrUnicode
+I_CryptConvertIriToAsciiOrUnicodeWithFlags
+LdapProvOpenStore
+CryptCancelAsyncRetrieval
+CryptFlushTimeValidObject
+CryptGetObjectUrl
+CryptGetTimeValidObject
+CryptInstallCancelRetrieval
+CryptRetrieveObjectByUrlA
+CryptRetrieveObjectByUrlW
+CryptUninstallCancelRetrieval
+I_CryptNetEnumUrlCacheEntry
+I_CryptNetGetConnectivity
+I_CryptNetGetHostNameFromUrl
+I_CryptNetGetUserDsStoreUrl
+I_CryptNetIsConnected
+I_CryptNetSetUrlCacheFlushInfo
+I_CryptNetSetUrlCachePreFetchInfo
diff --git a/lib/libc/mingw/lib-common/lz32.def b/lib/libc/mingw/lib-common/lz32.def
@@ -0,0 +1,22 @@
+;
+; Exports of file LZ32.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY LZ32.dll
+EXPORTS
+CopyLZFile
+GetExpandedNameA
+GetExpandedNameW
+LZClose
+LZCloseFile
+LZCopy
+LZCreateFileW
+LZDone
+LZInit
+LZOpenFileA
+LZOpenFileW
+LZRead
+LZSeek
+LZStart
diff --git a/lib/libc/mingw/lib-common/mpr.def b/lib/libc/mingw/lib-common/mpr.def
@@ -0,0 +1,94 @@
+;
+; Definition file of MPR.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008-2014
+;
+LIBRARY "MPR.dll"
+EXPORTS
+DoBroadcastSystemMessage
+DoCommandLinePrompt
+DoPasswordDialog
+DoProfileErrorDialog
+ShowReconnectDialog
+ShowReconnectDialogEnd
+ShowReconnectDialogUI
+WNetConnectionDialog2
+WNetDisconnectDialog2
+I_MprSaveConn
+MultinetGetConnectionPerformanceA
+MultinetGetConnectionPerformanceW
+MultinetGetErrorTextA
+MultinetGetErrorTextW
+RestoreConnectionA0
+WNetAddConnection2A
+WNetAddConnection2W
+WNetAddConnection3A
+WNetAddConnection3W
+WNetAddConnectionA
+WNetAddConnectionW
+WNetCancelConnection2A
+WNetCancelConnection2W
+WNetCancelConnectionA
+WNetCancelConnectionW
+WNetClearConnections
+WNetCloseEnum
+WNetConnectionDialog
+WNetConnectionDialog1A
+WNetConnectionDialog1W
+WNetDirectoryNotifyA
+WNetDirectoryNotifyW
+WNetDisconnectDialog
+WNetDisconnectDialog1A
+WNetDisconnectDialog1W
+WNetEnumResourceA
+WNetEnumResourceW
+WNetFMXEditPerm
+WNetFMXGetPermCaps
+WNetFMXGetPermHelp
+WNetFormatNetworkNameA
+WNetFormatNetworkNameW
+WNetGetConnection2A
+WNetGetConnection2W
+WNetGetConnection3A
+WNetGetConnection3W
+WNetGetConnectionA
+WNetGetConnectionW
+WNetGetDirectoryTypeA
+WNetGetDirectoryTypeW
+WNetGetHomeDirectoryW
+WNetGetLastErrorA
+WNetGetLastErrorW
+WNetGetNetworkInformationA
+WNetGetNetworkInformationW
+WNetGetPropertyTextA
+WNetGetPropertyTextW
+WNetGetProviderNameA
+WNetGetProviderNameW
+WNetGetProviderTypeA
+WNetGetProviderTypeW
+WNetGetResourceInformationA
+WNetGetResourceInformationW
+WNetGetResourceParentA
+WNetGetResourceParentW
+WNetGetSearchDialog
+WNetGetUniversalNameA
+WNetGetUniversalNameW
+WNetGetUserA
+WNetGetUserW
+WNetLogonNotify
+WNetOpenEnumA
+WNetOpenEnumW
+WNetPasswordChangeNotify
+WNetPropertyDialogA
+WNetPropertyDialogW
+WNetRestoreAllConnectionsW
+WNetRestoreConnection2W
+WNetRestoreConnectionW
+WNetRestoreSingleConnectionW
+WNetSetConnectionA
+WNetSetConnectionW
+WNetSetLastErrorA
+WNetSetLastErrorW
+WNetSupportGlobalEnum
+WNetUseConnectionA
+WNetUseConnectionW
diff --git a/lib/libc/mingw/lib-common/ncrypt.def b/lib/libc/mingw/lib-common/ncrypt.def
@@ -0,0 +1,137 @@
+;
+; Definition file of ncrypt.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008-2014
+;
+LIBRARY "ncrypt.dll"
+EXPORTS
+BCryptAddContextFunction
+BCryptAddContextFunctionProvider
+BCryptCloseAlgorithmProvider
+BCryptConfigureContext
+BCryptConfigureContextFunction
+BCryptCreateContext
+BCryptCreateHash
+BCryptDecrypt
+BCryptDeleteContext
+BCryptDeriveKey
+BCryptDeriveKeyCapi
+BCryptDeriveKeyPBKDF2
+BCryptDestroyHash
+BCryptDestroyKey
+BCryptDestroySecret
+BCryptDuplicateHash
+BCryptDuplicateKey
+BCryptEncrypt
+BCryptEnumAlgorithms
+BCryptEnumContextFunctionProviders
+BCryptEnumContextFunctions
+BCryptEnumContexts
+BCryptEnumProviders
+BCryptEnumRegisteredProviders
+BCryptExportKey
+BCryptFinalizeKeyPair
+BCryptFinishHash
+BCryptFreeBuffer
+BCryptGenRandom
+BCryptGenerateKeyPair
+BCryptGenerateSymmetricKey
+BCryptGetFipsAlgorithmMode
+BCryptGetProperty
+BCryptHashData
+BCryptImportKey
+BCryptImportKeyPair
+BCryptKeyDerivation
+BCryptOpenAlgorithmProvider
+BCryptQueryContextConfiguration
+BCryptQueryContextFunctionConfiguration
+BCryptQueryContextFunctionProperty
+BCryptQueryProviderRegistration
+BCryptRegisterConfigChangeNotify
+BCryptRegisterProvider
+BCryptRemoveContextFunction
+BCryptRemoveContextFunctionProvider
+BCryptResolveProviders
+BCryptSecretAgreement
+BCryptSetAuditingInterface
+BCryptSetContextFunctionProperty
+BCryptSetProperty
+BCryptSignHash
+BCryptUnregisterConfigChangeNotify
+BCryptUnregisterProvider
+BCryptVerifySignature
+GetIsolationServerInterface
+GetKeyStorageInterface
+GetSChannelInterface
+NCryptCloseKeyProtector
+NCryptCloseProtectionDescriptor
+NCryptCreatePersistedKey
+NCryptCreateProtectionDescriptor
+NCryptDecrypt
+NCryptDeleteKey
+NCryptDeriveKey
+NCryptDuplicateKeyProtectorHandle
+NCryptEncrypt
+NCryptEnumAlgorithms
+NCryptEnumKeys
+NCryptEnumStorageProviders
+NCryptExportKey
+NCryptFinalizeKey
+NCryptFreeBuffer
+NCryptFreeObject
+NCryptGetProperty
+NCryptGetProtectionDescriptorInfo
+NCryptImportKey
+NCryptIsAlgSupported
+NCryptIsKeyHandle
+NCryptKeyDerivation
+NCryptNotifyChangeKey
+NCryptOpenKey
+NCryptOpenKeyProtector
+NCryptOpenStorageProvider
+NCryptProtectKey
+NCryptProtectSecret
+NCryptQueryProtectionDescriptorName
+NCryptRegisterProtectionDescriptorName
+NCryptSecretAgreement
+NCryptSetAuditingInterface
+NCryptSetProperty
+NCryptSignHash
+NCryptStreamClose
+NCryptStreamOpenToProtect
+NCryptStreamOpenToUnprotect
+NCryptStreamUpdate
+NCryptTranslateHandle
+NCryptUnprotectKey
+NCryptUnprotectSecret
+NCryptVerifySignature
+SslChangeNotify
+SslComputeClientAuthHash
+SslComputeEapKeyBlock
+SslComputeFinishedHash
+SslCreateClientAuthHash
+SslCreateEphemeralKey
+SslCreateHandshakeHash
+SslDecrementProviderReferenceCount
+SslDecryptPacket
+SslEncryptPacket
+SslEnumCipherSuites
+SslEnumProtocolProviders
+SslExportKey
+SslFreeBuffer
+SslFreeObject
+SslGenerateMasterKey
+SslGenerateSessionKeys
+SslGetCipherSuitePRFHashAlgorithm
+SslGetKeyProperty
+SslGetProviderProperty
+SslHashHandshake
+SslImportKey
+SslImportMasterKey
+SslIncrementProviderReferenceCount
+SslLookupCipherLengths
+SslLookupCipherSuiteInfo
+SslOpenPrivateKey
+SslOpenProvider
+SslSignHash
+SslVerifySignature
diff --git a/lib/libc/mingw/lib-common/netapi32.def b/lib/libc/mingw/lib-common/netapi32.def
@@ -0,0 +1,386 @@
+LIBRARY "NETAPI32.dll"
+EXPORTS
+CredpValidateTargetName
+DavAddConnection
+DavDeleteConnection
+DavFlushFile
+DavGetExtendedError
+DavGetHTTPFromUNCPath
+DavGetUNCFromHTTPPath
+DsAddressToSiteNamesA
+DsAddressToSiteNamesExA
+DsAddressToSiteNamesExW
+DsAddressToSiteNamesW
+DsDeregisterDnsHostRecordsA
+DsDeregisterDnsHostRecordsW
+DsEnumerateDomainTrustsA
+DsEnumerateDomainTrustsW
+DsGetDcCloseW
+DsGetDcNameA
+DsGetDcNameW
+DsGetDcNameWithAccountA
+DsGetDcNameWithAccountW
+DsGetDcNextA
+DsGetDcNextW
+DsGetDcOpenA
+DsGetDcOpenW
+DsGetDcSiteCoverageA
+DsGetDcSiteCoverageW
+DsGetForestTrustInformationW
+DsGetSiteNameA
+DsGetSiteNameW
+DsMergeForestTrustInformationW
+DsRoleAbortDownlevelServerUpgrade
+DsRoleCancel
+DsRoleDcAsDc
+DsRoleDcAsReplica
+DsRoleDemoteDc
+DsRoleDnsNameToFlatName
+DsRoleFreeMemory
+DsRoleGetDatabaseFacts
+DsRoleGetDcOperationProgress
+DsRoleGetDcOperationResults
+DsRoleGetPrimaryDomainInformation
+DsRoleIfmHandleFree
+DsRoleServerSaveStateForUpgrade
+DsRoleUpgradeDownlevelServer
+DsValidateSubnetNameA
+DsValidateSubnetNameW
+I_BrowserDebugCall
+I_BrowserDebugTrace
+I_BrowserQueryEmulatedDomains
+I_BrowserQueryOtherDomains
+I_BrowserQueryStatistics
+I_BrowserResetNetlogonState
+I_BrowserResetStatistics
+I_BrowserServerEnum
+I_BrowserSetNetlogonState
+I_DsUpdateReadOnlyServerDnsRecords
+I_NetAccountDeltas
+I_NetAccountSync
+I_NetChainSetClientAttributes
+I_NetChainSetClientAttributes2
+I_NetDatabaseDeltas
+I_NetDatabaseRedo
+I_NetDatabaseSync
+I_NetDatabaseSync2
+I_NetDfsCreateExitPoint
+I_NetDfsCreateLocalPartition
+I_NetDfsDeleteExitPoint
+I_NetDfsDeleteLocalPartition
+I_NetDfsFixLocalVolume
+I_NetDfsGetFtServers
+I_NetDatabaseDeltas
+I_NetDatabaseRedo
+I_NetDatabaseSync
+I_NetDatabaseSync2
+I_NetDfsGetVersion
+I_NetDfsIsThisADomainName
+I_NetDfsManagerReportSiteInfo
+I_NetDfsModifyPrefix
+I_NetDfsSetLocalVolumeState
+I_NetDfsSetServerInfo
+I_NetGetDCList
+I_NetGetForestTrustInformation
+I_NetListCanonicalize
+I_NetListTraverse
+I_NetLogonControl
+I_NetLogonControl2
+I_NetLogonGetDomainInfo
+I_NetLogonSamLogoff
+I_NetLogonSamLogon
+I_NetLogonSamLogonEx
+I_NetLogonSamLogonWithFlags
+I_NetLogonSendToSam
+I_NetLogonUasLogoff
+I_NetLogonUasLogon
+I_NetNameCanonicalize
+I_NetNameCompare
+I_NetNameValidate
+I_NetPathCanonicalize
+I_NetPathCompare
+I_NetPathType
+I_NetLogonSamLogonEx
+I_NetLogonSamLogonWithFlags
+I_NetLogonSendToSam
+I_NetLogonUasLogoff
+I_NetLogonUasLogon
+I_NetServerAuthenticate
+I_NetServerAuthenticate2
+I_NetServerAuthenticate3
+I_NetServerGetTrustInfo
+I_NetServerPasswordGet
+I_NetServerPasswordSet
+I_NetServerPasswordSet2
+I_NetServerReqChallenge
+I_NetServerSetServiceBits
+I_NetServerSetServiceBitsEx
+I_NetServerTrustPasswordsGet
+I_NetlogonComputeClientDigest
+I_NetlogonComputeServerDigest
+I_NetlogonGetTrustRid
+NetAccessAdd
+NetAccessDel
+NetAccessEnum
+NetAccessGetInfo
+NetAccessGetUserPerms
+NetAccessSetInfo
+NetAddAlternateComputerName
+NetAddServiceAccount
+NetAlertRaise
+NetAlertRaiseEx
+NetApiBufferAllocate
+NetApiBufferFree
+NetApiBufferReallocate
+NetApiBufferSize
+NetAuditClear
+NetAuditRead
+NetAuditWrite
+NetBrowserStatisticsGet
+NetConfigGet
+NetConfigGetAll
+NetConfigSet
+NetConnectionEnum
+NetCreateProvisioningPackage
+NetDfsAdd
+NetDfsAddFtRoot
+NetDfsAddRootTarget
+NetDfsAddStdRoot
+NetDfsAddStdRootForced
+NetDfsEnum
+NetDfsGetClientInfo
+NetDfsGetDcAddress
+NetDfsGetFtContainerSecurity
+NetDfsGetInfo
+NetDfsGetSecurity
+NetDfsGetStdContainerSecurity
+NetDfsGetSupportedNamespaceVersion
+NetDfsManagerGetConfigInfo
+NetDfsManagerInitialize
+NetDfsManagerSendSiteInfo
+NetDfsMove
+NetDfsRemove
+NetDfsRemoveFtRoot
+NetDfsRemoveFtRootForced
+NetDfsRemoveRootTarget
+NetDfsRemoveStdRoot
+NetDfsRename
+NetDfsSetClientInfo
+NetDfsSetFtContainerSecurity
+NetDfsSetInfo
+NetDfsSetSecurity
+NetDfsSetStdContainerSecurity
+NetEnumerateComputerNames
+NetEnumerateServiceAccounts
+NetEnumerateTrustedDomains
+NetErrorLogClear
+NetErrorLogRead
+NetErrorLogWrite
+NetFileClose
+NetFileEnum
+NetFileGetInfo
+NetGetAnyDCName
+NetGetDCName
+NetGetDisplayInformationIndex
+NetGetJoinInformation
+NetGetJoinableOUs
+NetGroupAdd
+NetGroupAddUser
+NetGroupDel
+NetGroupDelUser
+NetGroupEnum
+NetGroupGetInfo
+NetGroupGetUsers
+NetGroupSetInfo
+NetGroupSetUsers
+NetIsServiceAccount
+NetJoinDomain
+NetLocalGroupAdd
+NetLocalGroupAddMember
+NetLocalGroupAddMembers
+NetLocalGroupDel
+NetLocalGroupDelMember
+NetLocalGroupDelMembers
+NetLocalGroupEnum
+NetLocalGroupGetInfo
+NetLocalGroupGetMembers
+NetLocalGroupSetInfo
+NetLocalGroupSetMembers
+NetLogonGetTimeServiceParentDomain
+NetLogonSetServiceBits
+NetMessageBufferSend
+NetMessageNameAdd
+NetMessageNameDel
+NetMessageNameEnum
+NetMessageNameGetInfo
+NetProvisionComputerAccount
+NetQueryDisplayInformation
+NetQueryServiceAccount
+NetRegisterDomainNameChangeNotification
+NetRemoteComputerSupports
+NetRemoteTOD
+NetRemoveAlternateComputerName
+NetRemoveServiceAccount
+NetRenameMachineInDomain
+NetReplExportDirAdd
+NetReplExportDirDel
+NetReplExportDirEnum
+NetReplExportDirGetInfo
+NetReplExportDirLock
+NetReplExportDirSetInfo
+NetReplExportDirUnlock
+NetReplGetInfo
+NetReplImportDirAdd
+NetReplImportDirDel
+NetReplImportDirEnum
+NetReplImportDirGetInfo
+NetReplImportDirLock
+NetReplImportDirUnlock
+NetReplSetInfo
+NetRequestOfflineDomainJoin
+NetRequestProvisioningPackageInstall
+NetScheduleJobAdd
+NetScheduleJobDel
+NetScheduleJobEnum
+NetScheduleJobGetInfo
+NetServerAliasAdd
+NetServerAliasDel
+NetServerAliasEnum
+NetServerComputerNameAdd
+NetServerComputerNameDel
+NetServerDiskEnum
+NetServerEnum
+NetServerEnumEx
+NetServerGetInfo
+NetServerSetInfo
+NetServerTransportAdd
+NetServerTransportAddEx
+NetServerTransportDel
+NetServerTransportEnum
+NetServiceControl
+NetServiceEnum
+NetServiceGetInfo
+NetServiceInstall
+NetSessionDel
+NetSessionEnum
+NetSessionGetInfo
+NetSetPrimaryComputerName
+NetShareAdd
+NetShareCheck
+NetShareDel
+NetShareDelEx
+NetShareDelSticky
+NetShareEnum
+NetShareEnumSticky
+NetShareGetInfo
+NetShareSetInfo
+NetStatisticsGet
+NetUnjoinDomain
+NetUnregisterDomainNameChangeNotification
+NetUseAdd
+NetUseDel
+NetUseEnum
+NetUseGetInfo
+NetUserAdd
+NetUserChangePassword
+NetUserDel
+NetUserEnum
+NetUserGetGroups
+NetUserGetInfo
+NetUserGetLocalGroups
+NetUserModalsGet
+NetUserModalsSet
+NetUserSetGroups
+NetUserSetInfo
+NetValidateName
+NetValidatePasswordPolicy
+NetValidatePasswordPolicyFree
+NetWkstaGetInfo
+NetWkstaSetInfo
+NetWkstaTransportAdd
+NetWkstaTransportDel
+NetWkstaTransportEnum
+NetWkstaUserEnum
+NetWkstaUserGetInfo
+NetWkstaUserSetInfo
+NetapipBufferAllocate
+Netbios
+NetpAccessCheck
+NetpAccessCheckAndAudit
+NetpAccessCheckAndAuditEx
+NetpAddTlnFtinfoEntry
+NetpAllocConfigName
+NetpAllocFtinfoEntry
+NetpAllocStrFromWStr
+NetpAllocWStrFromStr
+NetpAllocWStrFromWStr
+NetpApiStatusToNtStatus
+NetpAssertFailed
+NetpCleanFtinfoContext
+NetpCloseConfigData
+NetpCopyFtinfoContext
+NetpCopyStringToBuffer
+NetpCreateSecurityObject
+NetpDbgPrint
+NetpDeleteSecurityObject
+NetpEventlogClose
+NetpEventlogOpen
+NetpEventlogWriteEx
+NetpGetComputerName
+NetpGetConfigBool
+NetpGetConfigDword
+NetpGetConfigTStrArray
+NetpGetConfigValue
+NetpGetDomainName
+NetpGetFileSecurity
+NetpGetPrivilege
+NetpHexDump
+NetpInitFtinfoContext
+NetpInitOemString
+NetpIsRemote
+NetpIsUncComputerNameValid
+NetpLocalTimeZoneOffset
+NetpLogonPutUnicodeString
+NetpMergeFtinfo
+NetpNetBiosAddName
+NetpNetBiosCall
+NetpNetBiosDelName
+NetpNetBiosGetAdapterNumbers
+NetpNetBiosHangup
+NetpNetBiosReceive
+NetpNetBiosReset
+NetpNetBiosSend
+NetpNetBiosStatusToApiStatus
+NetpNtStatusToApiStatus
+NetpOpenConfigData
+NetpPackString
+NetpParmsQueryUserProperty
+NetpParmsQueryUserPropertyWithLength
+NetpParmsSetUserProperty
+NetpParmsSetUserPropertyWithLength
+NetpParmsUserPropertyFree
+NetpReleasePrivilege
+NetpSetFileSecurity
+NetpSmbCheck
+NetpStoreIntialDcRecord
+NetpStringToNetBiosName
+NetpTStrArrayEntryCount
+NetpUpgradePreNT5JoinInfo
+NetpwNameCanonicalize
+NetpwNameCompare
+NetpwNameValidate
+NetpwPathCanonicalize
+NetpwPathCompare
+NetpwPathType
+NlBindingAddServerToCache
+NlBindingRemoveServerFromCache
+NlBindingSetAuthInfo
+RxNetAccessAdd
+RxNetAccessDel
+RxNetAccessEnum
+RxNetAccessGetInfo
+RxNetAccessGetUserPerms
+RxNetAccessSetInfo
+RxNetServerEnum
+RxNetUserPasswordSet
+RxRemoteApi
diff --git a/lib/libc/mingw/lib-common/rpcns4.def b/lib/libc/mingw/lib-common/rpcns4.def
@@ -0,0 +1,71 @@
+;
+; Exports of file RPCNS4.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY RPCNS4.dll
+EXPORTS
+I_GetDefaultEntrySyntax
+I_RpcNsGetBuffer
+I_RpcNsNegotiateTransferSyntax
+I_RpcNsRaiseException
+I_RpcNsSendReceive
+I_RpcReBindBuffer
+RpcIfIdVectorFree
+RpcNsBindingExportA
+RpcNsBindingExportPnPA
+RpcNsBindingExportPnPW
+RpcNsBindingExportW
+RpcNsBindingImportBeginA
+RpcNsBindingImportBeginW
+RpcNsBindingImportDone
+RpcNsBindingImportNext
+RpcNsBindingLookupBeginA
+RpcNsBindingLookupBeginW
+RpcNsBindingLookupDone
+RpcNsBindingLookupNext
+RpcNsBindingSelect
+RpcNsBindingUnexportA
+RpcNsBindingUnexportPnPA
+RpcNsBindingUnexportPnPW
+RpcNsBindingUnexportW
+RpcNsEntryExpandNameA
+RpcNsEntryExpandNameW
+RpcNsEntryObjectInqBeginA
+RpcNsEntryObjectInqBeginW
+RpcNsEntryObjectInqDone
+RpcNsEntryObjectInqNext
+RpcNsGroupDeleteA
+RpcNsGroupDeleteW
+RpcNsGroupMbrAddA
+RpcNsGroupMbrAddW
+RpcNsGroupMbrInqBeginA
+RpcNsGroupMbrInqBeginW
+RpcNsGroupMbrInqDone
+RpcNsGroupMbrInqNextA
+RpcNsGroupMbrInqNextW
+RpcNsGroupMbrRemoveA
+RpcNsGroupMbrRemoveW
+RpcNsMgmtBindingUnexportA
+RpcNsMgmtBindingUnexportW
+RpcNsMgmtEntryCreateA
+RpcNsMgmtEntryCreateW
+RpcNsMgmtEntryDeleteA
+RpcNsMgmtEntryDeleteW
+RpcNsMgmtEntryInqIfIdsA
+RpcNsMgmtEntryInqIfIdsW
+RpcNsMgmtHandleSetExpAge
+RpcNsMgmtInqExpAge
+RpcNsMgmtSetExpAge
+RpcNsProfileDeleteA
+RpcNsProfileDeleteW
+RpcNsProfileEltAddA
+RpcNsProfileEltAddW
+RpcNsProfileEltInqBeginA
+RpcNsProfileEltInqBeginW
+RpcNsProfileEltInqDone
+RpcNsProfileEltInqNextA
+RpcNsProfileEltInqNextW
+RpcNsProfileEltRemoveA
+RpcNsProfileEltRemoveW
diff --git a/lib/libc/mingw/lib-common/rpcrt4.def b/lib/libc/mingw/lib-common/rpcrt4.def
@@ -0,0 +1,577 @@
+LIBRARY "RPCRT4.dll"
+EXPORTS
+CreateProxyFromTypeInfo
+CreateStubFromTypeInfo
+I_RpcFixTransferSyntax
+I_RpcBindingInqCurrentModifiedId
+I_RpcFwThisIsTheManager
+I_RpcInitFwImports
+I_RpcInitHttpImports
+I_RpcInitImports
+I_RpcInitNdrImports
+I_RpcMgmtQueryDedicatedThreadPool
+I_RpcOpenClientProcess
+I_RpcOpenClientThread
+I_RpcServerTurnOnOffKeepalives
+I_RpcVerifierCorruptionExpected
+NdrFullPointerFree
+NdrFullPointerInsertRefId
+NdrFullPointerQueryPointer
+NdrFullPointerQueryRefId
+NdrGetBaseInterfaceFromStub
+NdrpClientCall2
+RpcCertMatchPrincipalName
+pfnFreeRoutines DATA
+pfnMarshallRoutines DATA
+pfnSizeRoutines DATA
+pfnUnmarshallRoutines DATA
+CStdStubBuffer_AddRef
+CStdStubBuffer_Connect
+CStdStubBuffer_CountRefs
+CStdStubBuffer_DebugServerQueryInterface
+CStdStubBuffer_DebugServerRelease
+CStdStubBuffer_Disconnect
+CStdStubBuffer_Invoke
+CStdStubBuffer_IsIIDSupported
+CStdStubBuffer_QueryInterface
+CreateProxyFromTypeInfo
+CreateStubFromTypeInfo
+DceErrorInqTextA
+DceErrorInqTextW
+DllGetClassObject
+DllInstall
+DllRegisterServer
+GlobalMutexClearExternal
+GlobalMutexRequestExternal
+IUnknown_AddRef_Proxy
+IUnknown_QueryInterface_Proxy
+IUnknown_Release_Proxy
+I_RpcAbortAsyncCall
+I_RpcAllocate
+I_RpcAsyncAbortCall
+I_RpcAsyncSetHandle
+I_RpcBCacheAllocate
+I_RpcBCacheFree
+I_RpcBindingCopy
+I_RpcBindingCreateNP
+I_RpcBindingHandleToAsyncHandle
+I_RpcBindingInqClientTokenAttributes
+I_RpcBindingInqConnId
+I_RpcBindingInqDynamicEndpoint
+I_RpcBindingInqDynamicEndpointA
+I_RpcBindingInqDynamicEndpointW
+I_RpcBindingInqLocalClientPID
+I_RpcBindingInqMarshalledTargetInfo
+I_RpcBindingInqSecurityContext
+I_RpcBindingInqSecurityContextKeyInfo
+I_RpcBindingInqTransportType
+I_RpcBindingInqWireIdForSnego
+I_RpcBindingIsClientLocal
+I_RpcBindingIsServerLocal
+I_RpcBindingSetPrivateOption
+I_RpcBindingToStaticStringBindingW
+I_RpcCertProcessAndProvision
+I_RpcClearMutex
+I_RpcCompleteAndFree
+I_RpcConnectionInqSockBuffSize
+I_RpcConnectionSetSockBuffSize
+I_RpcCompleteAndFree
+I_RpcDeleteMutex
+I_RpcEnableWmiTrace
+I_RpcExceptionFilter
+I_RpcFilterDCOMActivation
+I_RpcFree
+I_RpcFreeBuffer
+I_RpcFreePipeBuffer
+I_RpcGetBuffer
+I_RpcGetBufferWithObject
+I_RpcGetCurrentCallHandle
+I_RpcGetDefaultSD
+I_RpcGetExtendedError
+I_RpcGetPortAllocationData
+I_RpcIfInqTransferSyntaxes
+I_RpcLogEvent
+I_RpcMapWin32Status
+I_RpcMarshalBindingHandleAndInterfaceForNDF
+I_RpcMgmtEnableDedicatedThreadPool
+I_RpcNDRCGetWireRepresentation
+I_RpcNDRSContextEmergencyCleanup
+I_RpcNegotiateTransferSyntax
+I_RpcNsBindingSetEntryName
+I_RpcNsBindingSetEntryNameA
+I_RpcNsBindingSetEntryNameW
+I_RpcNsInterfaceExported
+I_RpcNsInterfaceUnexported
+I_RpcOpenClientProcess
+I_RpcParseSecurity
+I_RpcPauseExecution
+I_RpcProxyNewConnection
+I_RpcReallocPipeBuffer
+I_RpcReceive
+I_RpcRecordCalloutFailure
+I_RpcReplyToClientWithStatus
+I_RpcRequestMutex
+I_RpcSNCHOption
+I_RpcSend
+I_RpcSendReceive
+I_RpcServerAllocateIpPort
+I_RpcServerCheckClientRestriction
+I_RpcServerDisableExceptionFilter
+I_RpcServerGetAssociationID
+I_RpcServerInqAddressChangeFn
+I_RpcServerInqLocalConnAddress
+I_RpcServerInqRemoteConnAddress
+I_RpcServerInqTransportType
+I_RpcServerIsClientDisconnected
+I_RpcServerRegisterForwardFunction
+I_RpcServerSetAddressChangeFn
+I_RpcServerStartService
+I_RpcServerSubscribeForDisconnectNotification
+I_RpcServerUseProtseq2A
+I_RpcServerUseProtseq2W
+I_RpcServerUseProtseqEp2A
+I_RpcServerUseProtseqEp2W
+I_RpcSessionStrictContextHandle
+I_RpcSetAsyncHandle
+I_RpcSetDCOMAppId
+I_RpcSsDontSerializeContext
+I_RpcSystemFunction001
+I_RpcTransConnectionAllocatePacket
+I_RpcTransConnectionFreePacket
+I_RpcTransConnectionReallocPacket
+I_RpcTransDatagramAllocate
+I_RpcTransDatagramAllocate2
+I_RpcTransDatagramFree
+I_RpcTransGetThreadEvent
+I_RpcTransGetThreadEventThreadOptional
+I_RpcTransIoCancelled
+I_RpcTransServerNewConnection
+I_RpcTurnOnEEInfoPropagation
+I_UuidCreate
+MesBufferHandleReset
+MesDecodeBufferHandleCreate
+MesDecodeIncrementalHandleCreate
+MesEncodeDynBufferHandleCreate
+MesEncodeFixedBufferHandleCreate
+MesEncodeIncrementalHandleCreate
+MesHandleFree
+MesIncrementalHandleReset
+MesInqProcEncodingId
+NDRCContextBinding
+NDRCContextMarshall
+NDRCContextUnmarshall
+NDRSContextMarshall
+NDRSContextMarshall2
+NDRSContextMarshallEx
+NDRSContextUnmarshall
+NDRSContextUnmarshall2
+NDRSContextUnmarshallEx
+Ndr64AsyncClientCall
+Ndr64AsyncServerCall64
+Ndr64AsyncServerCallAll
+Ndr64DcomAsyncClientCall
+Ndr64DcomAsyncStubCall
+NdrAllocate
+NdrAsyncClientCall
+NdrAsyncServerCall
+NdrByteCountPointerBufferSize
+NdrByteCountPointerFree
+NdrByteCountPointerMarshall
+NdrByteCountPointerUnmarshall
+NdrCStdStubBuffer2_Release
+NdrCStdStubBuffer_Release
+NdrClearOutParameters
+NdrClientCall2
+NdrClientCall3
+NdrClientContextMarshall
+NdrClientContextUnmarshall
+NdrClientInitialize
+NdrClientInitializeNew
+NdrComplexArrayBufferSize
+NdrComplexArrayFree
+NdrComplexArrayMarshall
+NdrComplexArrayMemorySize
+NdrComplexArrayUnmarshall
+NdrComplexStructBufferSize
+NdrComplexStructFree
+NdrComplexStructMarshall
+NdrComplexStructMemorySize
+NdrComplexStructUnmarshall
+NdrConformantArrayBufferSize
+NdrConformantArrayFree
+NdrConformantArrayMarshall
+NdrConformantArrayMemorySize
+NdrConformantArrayUnmarshall
+NdrConformantStringBufferSize
+NdrConformantStringMarshall
+NdrConformantStringMemorySize
+NdrConformantStringUnmarshall
+NdrConformantStructBufferSize
+NdrConformantStructFree
+NdrConformantStructMarshall
+NdrConformantStructMemorySize
+NdrConformantStructUnmarshall
+NdrConformantVaryingArrayBufferSize
+NdrConformantVaryingArrayFree
+NdrConformantVaryingArrayMarshall
+NdrConformantVaryingArrayMemorySize
+NdrConformantVaryingArrayUnmarshall
+NdrConformantVaryingStructBufferSize
+NdrConformantVaryingStructFree
+NdrConformantVaryingStructMarshall
+NdrConformantVaryingStructMemorySize
+NdrConformantVaryingStructUnmarshall
+NdrContextHandleInitialize
+NdrContextHandleSize
+NdrConvert
+NdrConvert2
+NdrCorrelationFree
+NdrCorrelationInitialize
+NdrCorrelationPass
+NdrCreateServerInterfaceFromStub
+NdrDcomAsyncClientCall
+NdrDcomAsyncStubCall
+NdrDllCanUnloadNow
+NdrDllGetClassObject
+NdrDllRegisterProxy
+NdrDllUnregisterProxy
+NdrEncapsulatedUnionBufferSize
+NdrEncapsulatedUnionFree
+NdrEncapsulatedUnionMarshall
+NdrEncapsulatedUnionMemorySize
+NdrEncapsulatedUnionUnmarshall
+NdrFixedArrayBufferSize
+NdrFixedArrayFree
+NdrFixedArrayMarshall
+NdrFixedArrayMemorySize
+NdrFixedArrayUnmarshall
+NdrFreeBuffer
+NdrFullPointerFree
+NdrFullPointerInsertRefId
+NdrFullPointerQueryPointer
+NdrFullPointerQueryRefId
+NdrFullPointerXlatFree
+NdrFullPointerXlatInit
+NdrGetBaseInterfaceFromStub
+NdrGetBuffer
+NdrGetDcomProtocolVersion
+NdrGetSimpleTypeBufferAlignment
+NdrGetSimpleTypeBufferSize
+NdrGetSimpleTypeMemorySize
+NdrGetTypeFlags
+NdrGetUserMarshalInfo
+NdrInterfacePointerBufferSize
+NdrInterfacePointerFree
+NdrInterfacePointerMarshall
+NdrInterfacePointerMemorySize
+NdrInterfacePointerUnmarshall
+NdrMapCommAndFaultStatus
+NdrMesProcEncodeDecode
+NdrMesProcEncodeDecode2
+NdrMesProcEncodeDecode3
+NdrMesSimpleTypeAlignSize
+NdrMesSimpleTypeAlignSizeAll
+NdrMesSimpleTypeDecode
+NdrMesSimpleTypeDecodeAll
+NdrMesSimpleTypeEncode
+NdrMesSimpleTypeEncodeAll
+NdrMesTypeAlignSize
+NdrMesTypeAlignSize2
+NdrMesTypeAlignSize3
+NdrMesTypeDecode
+NdrMesTypeDecode2
+NdrMesTypeDecode3
+NdrMesTypeEncode
+NdrMesTypeEncode2
+NdrMesTypeEncode3
+NdrMesTypeFree2
+NdrMesTypeFree3
+NdrNonConformantStringBufferSize
+NdrNonConformantStringMarshall
+NdrNonConformantStringMemorySize
+NdrNonConformantStringUnmarshall
+NdrNonEncapsulatedUnionBufferSize
+NdrNonEncapsulatedUnionFree
+NdrNonEncapsulatedUnionMarshall
+NdrNonEncapsulatedUnionMemorySize
+NdrNonEncapsulatedUnionUnmarshall
+NdrNsGetBuffer
+NdrNsSendReceive
+NdrOleAllocate
+NdrOleFree
+NdrOutInit
+NdrPartialIgnoreClientBufferSize
+NdrPartialIgnoreClientMarshall
+NdrPartialIgnoreServerInitialize
+NdrPartialIgnoreServerUnmarshall
+NdrPointerBufferSize
+NdrPointerFree
+NdrPointerMarshall
+NdrPointerMemorySize
+NdrPointerUnmarshall
+NdrProxyErrorHandler
+NdrProxyFreeBuffer
+NdrProxyGetBuffer
+NdrProxyInitialize
+NdrProxySendReceive
+NdrRangeUnmarshall
+NdrRpcSmClientAllocate
+NdrRpcSmClientFree
+NdrRpcSmSetClientToOsf
+NdrRpcSsDefaultAllocate
+NdrRpcSsDefaultFree
+NdrRpcSsDisableAllocate
+NdrRpcSsEnableAllocate
+NdrSendReceive
+NdrServerCall2
+NdrServerCallAll
+NdrServerCallNdr64
+NdrServerContextMarshall
+NdrServerContextNewMarshall
+NdrServerContextNewUnmarshall
+NdrServerContextUnmarshall
+NdrServerInitialize
+NdrServerInitializeMarshall
+NdrServerInitializeNew
+NdrServerInitializePartial
+NdrServerInitializeUnmarshall
+NdrSimpleStructBufferSize
+NdrSimpleStructFree
+NdrSimpleStructMarshall
+NdrSimpleStructMemorySize
+NdrSimpleStructUnmarshall
+NdrSimpleTypeMarshall
+NdrSimpleTypeUnmarshall
+NdrStubCall2
+NdrStubCall3
+NdrStubForwardingFunction
+NdrStubGetBuffer
+NdrStubInitialize
+NdrStubInitializeMarshall
+NdrTypeFlags DATA
+NdrTypeFree
+NdrTypeMarshall
+NdrTypeSize
+NdrTypeUnmarshall
+NdrUnmarshallBasetypeInline
+NdrUserMarshalBufferSize
+NdrUserMarshalFree
+NdrUserMarshalMarshall
+NdrUserMarshalMemorySize
+NdrUserMarshalSimpleTypeConvert
+NdrUserMarshalUnmarshall
+NdrVaryingArrayBufferSize
+NdrVaryingArrayFree
+NdrVaryingArrayMarshall
+NdrVaryingArrayMemorySize
+NdrVaryingArrayUnmarshall
+NdrXmitOrRepAsBufferSize
+NdrXmitOrRepAsFree
+NdrXmitOrRepAsMarshall
+NdrXmitOrRepAsMemorySize
+NdrXmitOrRepAsUnmarshall
+NdrpCreateProxy
+NdrpCreateStub
+NdrpGetProcFormatString
+NdrpGetTypeFormatString
+NdrpGetTypeGenCookie
+NdrpMemoryIncrement
+NdrpReleaseTypeFormatString
+NdrpReleaseTypeGenCookie
+NdrpSetRpcSsDefaults
+NdrpVarVtOfTypeDesc
+RpcAbortAsyncCall
+RpcAsyncAbortCall
+RpcAsyncCancelCall
+RpcAsyncCompleteCall
+RpcAsyncGetCallStatus
+RpcAsyncInitializeHandle
+RpcAsyncRegisterInfo
+RpcBindingBind
+RpcBindingCopy
+RpcBindingCreateA
+RpcBindingCreateW
+RpcBindingFree
+RpcBindingFromStringBindingA
+RpcBindingFromStringBindingW
+RpcBindingInqAuthClientA
+RpcBindingInqAuthClientExA
+RpcBindingInqAuthClientExW
+RpcBindingInqAuthClientW
+RpcBindingInqAuthInfoA
+RpcBindingInqAuthInfoExA
+RpcBindingInqAuthInfoExW
+RpcBindingInqAuthInfoW
+RpcBindingInqObject
+RpcBindingInqOption
+RpcBindingReset
+RpcBindingServerFromClient
+RpcBindingSetAuthInfoA
+RpcBindingSetAuthInfoExA
+RpcBindingSetAuthInfoExW
+RpcBindingSetAuthInfoW
+RpcBindingSetObject
+RpcBindingSetOption
+RpcBindingToStringBindingA
+RpcBindingToStringBindingW
+RpcBindingUnbind
+RpcBindingVectorFree
+RpcCancelAsyncCall
+RpcCancelThread
+RpcCancelThreadEx
+RpcCertGeneratePrincipalNameA
+RpcCertGeneratePrincipalNameW
+RpcCompleteAsyncCall
+RpcEpRegisterA
+RpcEpRegisterNoReplaceA
+RpcEpRegisterNoReplaceW
+RpcEpRegisterW
+RpcEpResolveBinding
+RpcEpUnregister
+RpcErrorAddRecord
+RpcErrorClearInformation
+RpcErrorEndEnumeration
+RpcErrorGetNextRecord
+RpcErrorGetNumberOfRecords
+RpcErrorLoadErrorInfo
+RpcErrorResetEnumeration
+RpcErrorSaveErrorInfo
+RpcErrorStartEnumeration
+RpcExceptionFilter
+RpcFreeAuthorizationContext
+RpcGetAsyncCallStatus
+RpcGetAuthorizationContextForClient
+RpcIfIdVectorFree
+RpcIfInqId
+RpcImpersonateClient
+RpcImpersonateClient2
+RpcInitializeAsyncHandle
+RpcMgmtEnableIdleCleanup
+RpcMgmtEpEltInqBegin
+RpcMgmtEpEltInqDone
+RpcMgmtEpEltInqNextA
+RpcMgmtEpEltInqNextW
+RpcMgmtEpUnregister
+RpcMgmtInqComTimeout
+RpcMgmtInqDefaultProtectLevel
+RpcMgmtInqIfIds
+RpcMgmtInqServerPrincNameA
+RpcMgmtInqServerPrincNameW
+RpcMgmtInqStats
+RpcMgmtIsServerListening
+RpcMgmtSetAuthorizationFn
+RpcMgmtSetCancelTimeout
+RpcMgmtSetComTimeout
+RpcMgmtSetServerStackSize
+RpcMgmtStatsVectorFree
+RpcMgmtStopServerListening
+RpcMgmtWaitServerListen
+RpcNetworkInqProtseqsA
+RpcNetworkInqProtseqsW
+RpcNetworkIsProtseqValidA
+RpcNetworkIsProtseqValidW
+RpcNsBindingInqEntryNameA
+RpcNsBindingInqEntryNameW
+RpcObjectInqType
+RpcObjectSetInqFn
+RpcObjectSetType
+RpcProtseqVectorFreeA
+RpcProtseqVectorFreeW
+RpcRaiseException
+RpcRegisterAsyncInfo
+RpcRevertToSelf
+RpcRevertToSelfEx
+RpcServerCompleteSecurityCallback
+RpcServerInqBindingHandle
+RpcServerInqBindings
+RpcServerInqCallAttributesA
+RpcServerInqCallAttributesW
+RpcServerInqDefaultPrincNameA
+RpcServerInqDefaultPrincNameW
+RpcServerInqIf
+RpcServerInterfaceGroupActivate
+RpcServerInterfaceGroupClose
+RpcServerInterfaceGroupCreateA
+RpcServerInterfaceGroupCreateW
+RpcServerInterfaceGroupDeactivate
+RpcServerInterfaceGroupInqBindings
+RpcServerListen
+RpcServerRegisterAuthInfoA
+RpcServerRegisterAuthInfoW
+RpcServerRegisterIf
+RpcServerRegisterIf2
+RpcServerRegisterIf3
+RpcServerRegisterIfEx
+RpcServerSubscribeForNotification
+RpcServerTestCancel
+RpcServerUnregisterIf
+RpcServerUnregisterIfEx
+RpcServerUnsubscribeForNotification
+RpcServerUseAllProtseqs
+RpcServerUseAllProtseqsEx
+RpcServerUseAllProtseqsIf
+RpcServerUseAllProtseqsIfEx
+RpcServerUseProtseqA
+RpcServerUseProtseqEpA
+RpcServerUseProtseqEpExA
+RpcServerUseProtseqEpExW
+RpcServerUseProtseqEpW
+RpcServerUseProtseqExA
+RpcServerUseProtseqExW
+RpcServerUseProtseqIfA
+RpcServerUseProtseqIfExA
+RpcServerUseProtseqIfExW
+RpcServerUseProtseqIfW
+RpcServerUseProtseqW
+RpcServerYield
+RpcSmAllocate
+RpcSmClientFree
+RpcSmDestroyClientContext
+RpcSmDisableAllocate
+RpcSmEnableAllocate
+RpcSmFree
+RpcSmGetThreadHandle
+RpcSmSetClientAllocFree
+RpcSmSetThreadHandle
+RpcSmSwapClientAllocFree
+RpcSsAllocate
+RpcSsContextLockExclusive
+RpcSsContextLockShared
+RpcSsDestroyClientContext
+RpcSsDisableAllocate
+RpcSsDontSerializeContext
+RpcSsEnableAllocate
+RpcSsFree
+RpcSsGetContextBinding
+RpcSsGetThreadHandle
+RpcSsSetClientAllocFree
+RpcSsSetThreadHandle
+RpcSsSwapClientAllocFree
+RpcStringBindingComposeA
+RpcStringBindingComposeW
+RpcStringBindingParseA
+RpcStringBindingParseW
+RpcStringFreeA
+RpcStringFreeW
+RpcTestCancel
+RpcUserFree
+SimpleTypeAlignment DATA
+SimpleTypeBufferSize DATA
+SimpleTypeMemorySize DATA
+TowerConstruct
+TowerExplode
+UuidCompare
+UuidCreate
+UuidCreateNil
+UuidCreateSequential
+UuidEqual
+UuidFromStringA
+UuidFromStringW
+UuidHash
+UuidIsNil
+UuidToStringA
+UuidToStringW
+pfnFreeRoutines DATA
+pfnMarshallRoutines DATA
+pfnSizeRoutines DATA
+pfnUnmarshallRoutines DATA
diff --git a/lib/libc/mingw/lib-common/scarddlg.def b/lib/libc/mingw/lib-common/scarddlg.def
@@ -0,0 +1,15 @@
+;
+; Exports of file SCARDDLG.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY SCARDDLG.dll
+EXPORTS
+GetOpenCardNameA
+GetOpenCardNameW
+SCardDlgExtendedError
+SCardUIDlgSelectCardA
+SCardUIDlgSelectCardW
+SCardUIDlgGetPINA
+SCardUIDlgChangePINA
diff --git a/lib/libc/mingw/lib-common/winscard.def b/lib/libc/mingw/lib-common/winscard.def
@@ -0,0 +1,84 @@
+;
+; Definition file of WinSCard.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008-2014
+;
+LIBRARY "WinSCard.dll"
+EXPORTS
+ClassInstall32
+SCardAccessNewReaderEvent
+SCardReleaseAllEvents
+SCardReleaseNewReaderEvent
+SCardAccessStartedEvent
+SCardAddReaderToGroupA
+SCardAddReaderToGroupW
+SCardAudit
+SCardBeginTransaction
+SCardCancel
+SCardConnectA
+SCardConnectW
+SCardControl
+SCardDisconnect
+SCardEndTransaction
+SCardEstablishContext
+SCardForgetCardTypeA
+SCardForgetCardTypeW
+SCardForgetReaderA
+SCardForgetReaderGroupA
+SCardForgetReaderGroupW
+SCardForgetReaderW
+SCardFreeMemory
+SCardGetAttrib
+SCardGetCardTypeProviderNameA
+SCardGetCardTypeProviderNameW
+SCardGetDeviceTypeIdA
+SCardGetDeviceTypeIdW
+SCardGetProviderIdA
+SCardGetProviderIdW
+SCardGetReaderDeviceInstanceIdA
+SCardGetReaderDeviceInstanceIdW
+SCardGetReaderIconA
+SCardGetReaderIconW
+SCardGetStatusChangeA
+SCardGetStatusChangeW
+SCardGetTransmitCount
+SCardIntroduceCardTypeA
+SCardIntroduceCardTypeW
+SCardIntroduceReaderA
+SCardIntroduceReaderGroupA
+SCardIntroduceReaderGroupW
+SCardIntroduceReaderW
+SCardIsValidContext
+SCardListCardsA
+SCardListCardsW
+SCardListInterfacesA
+SCardListInterfacesW
+SCardListReaderGroupsA
+SCardListReaderGroupsW
+SCardListReadersA
+SCardListReadersW
+SCardListReadersWithDeviceInstanceIdA
+SCardListReadersWithDeviceInstanceIdW
+SCardLocateCardsA
+SCardLocateCardsByATRA
+SCardLocateCardsByATRW
+SCardLocateCardsW
+SCardReadCacheA
+SCardReadCacheW
+SCardReconnect
+SCardReleaseContext
+SCardReleaseStartedEvent
+SCardRemoveReaderFromGroupA
+SCardRemoveReaderFromGroupW
+SCardSetAttrib
+SCardSetCardTypeProviderNameA
+SCardSetCardTypeProviderNameW
+SCardState
+SCardStatusA
+SCardStatusW
+SCardTransmit
+SCardWriteCacheA
+SCardWriteCacheW
+g_rgSCardRawPci DATA
+g_rgSCardT0Pci DATA
+g_rgSCardT1Pci DATA
diff --git a/lib/libc/mingw/lib-common/winspool.def b/lib/libc/mingw/lib-common/winspool.def
@@ -0,0 +1,212 @@
+;
+; Definition file of WINSPOOL.DRV
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "WINSPOOL.DRV"
+EXPORTS
+ADVANCEDSETUPDIALOG
+AdvancedSetupDialog
+ConvertAnsiDevModeToUnicodeDevmode
+ConvertUnicodeDevModeToAnsiDevmode
+DEVICEMODE
+DeviceMode
+DocumentEvent
+PerfClose
+PerfCollect
+PerfOpen
+QueryColorProfile
+QueryRemoteFonts
+QuerySpoolMode
+SpoolerDevQueryPrintW
+StartDocDlgW
+AbortPrinter
+AddFormA
+AddFormW
+AddJobA
+AddJobW
+AddMonitorA
+AddMonitorW
+AddPortA
+AddPortExA
+AddPortExW
+AddPortW
+AddPrintProcessorA
+AddPrintProcessorW
+AddPrintProvidorA
+AddPrintProvidorW
+AddPrinterA
+AddPrinterConnection2A
+AddPrinterConnection2W
+AddPrinterConnectionA
+AddPrinterConnectionW
+AddPrinterDriverA
+AddPrinterDriverExA
+AddPrinterDriverExW
+AddPrinterDriverW
+AddPrinterW
+AdvancedDocumentPropertiesA
+AdvancedDocumentPropertiesW
+ClosePrinter
+CloseSpoolFileHandle
+CommitSpoolData
+ConfigurePortA
+ConfigurePortW
+ConnectToPrinterDlg
+CorePrinterDriverInstalledA
+CorePrinterDriverInstalledW
+CreatePrintAsyncNotifyChannel
+CreatePrinterIC
+DEVICECAPABILITIES
+DeleteFormA
+DeleteFormW
+DeleteJobNamedProperty
+DeleteMonitorA
+DeleteMonitorW
+DeletePortA
+DeletePortW
+DeletePrintProcessorA
+DeletePrintProcessorW
+DeletePrintProvidorA
+DeletePrintProvidorW
+DeletePrinter
+DeletePrinterConnectionA
+DeletePrinterConnectionW
+DeletePrinterDataA
+DeletePrinterDataExA
+DeletePrinterDataExW
+DeletePrinterDataW
+DeletePrinterDriverA
+DeletePrinterDriverExA
+DeletePrinterDriverExW
+DeletePrinterDriverPackageA
+DeletePrinterDriverPackageW
+DeletePrinterDriverW
+DeletePrinterIC
+DeletePrinterKeyA
+DeletePrinterKeyW
+DevQueryPrint
+DevQueryPrintEx
+DeviceCapabilities
+DeviceCapabilitiesA
+DeviceCapabilitiesW
+DevicePropertySheets
+DocumentEvent
+DocumentPropertiesA
+DocumentPropertiesW
+DocumentPropertySheets
+EXTDEVICEMODE
+EndDocPrinter
+EndPagePrinter
+EnumFormsA
+EnumFormsW
+EnumJobNamedProperties
+EnumJobsA
+EnumJobsW
+EnumMonitorsA
+EnumMonitorsW
+EnumPortsA
+GetDefaultPrinterA
+SetDefaultPrinterA
+GetDefaultPrinterW
+SetDefaultPrinterW
+EnumPortsW
+EnumPrintProcessorDatatypesA
+EnumPrintProcessorDatatypesW
+EnumPrintProcessorsA
+EnumPrintProcessorsW
+EnumPrinterDataA
+EnumPrinterDataExA
+EnumPrinterDataExW
+EnumPrinterDataW
+EnumPrinterDriversA
+EnumPrinterDriversW
+EnumPrinterKeyA
+EnumPrinterKeyW
+EnumPrintersA
+EnumPrintersW
+ExtDeviceMode
+FindClosePrinterChangeNotification
+FindFirstPrinterChangeNotification
+FindNextPrinterChangeNotification
+FlushPrinter
+FreePrintNamedPropertyArray
+FreePrintPropertyValue
+FreePrinterNotifyInfo
+GetCorePrinterDriversA
+GetCorePrinterDriversW
+GetFormA
+GetFormW
+GetJobA
+GetJobNamedPropertyValue
+GetJobW
+GetPrintExecutionData
+GetPrintOutputInfo
+GetPrintProcessorDirectoryA
+GetPrintProcessorDirectoryW
+GetPrinterA
+GetPrinterDataA
+GetPrinterDataExA
+GetPrinterDataExW
+GetPrinterDataW
+GetPrinterDriver2A
+GetPrinterDriver2W
+GetPrinterDriverA
+GetPrinterDriverDirectoryA
+GetPrinterDriverDirectoryW
+GetPrinterDriverPackagePathA
+GetPrinterDriverPackagePathW
+GetPrinterDriverW
+GetPrinterW
+GetSpoolFileHandle
+InstallPrinterDriverFromPackageA
+InstallPrinterDriverFromPackageW
+IsValidDevmodeA
+IsValidDevmodeW
+OpenPrinter2A
+OpenPrinter2W
+OpenPrinterA
+OpenPrinterW
+PlayGdiScriptOnPrinterIC
+PrinterMessageBoxA
+PrinterMessageBoxW
+PrinterProperties
+QueryColorProfile
+QueryRemoteFonts
+QuerySpoolMode
+ReadPrinter
+RegisterForPrintAsyncNotifications
+ReportJobProcessingProgress
+ResetPrinterA
+ResetPrinterW
+ScheduleJob
+SeekPrinter
+SetAllocFailCount
+SetFormA
+SetFormW
+SetJobA
+SetJobNamedProperty
+SetJobW
+SetPortA
+SetPortW
+SetPrinterA
+SetPrinterDataA
+SetPrinterDataExA
+SetPrinterDataExW
+SetPrinterDataW
+SetPrinterW
+SplDriverUnloadComplete
+SpoolerDevQueryPrintW
+SpoolerInit
+SpoolerPrinterEvent
+StartDocDlgA
+StartDocDlgW
+StartDocPrinterA
+StartDocPrinterW
+StartPagePrinter
+UnRegisterForPrintAsyncNotifications
+UploadPrinterDriverPackageA
+UploadPrinterDriverPackageW
+WaitForPrinterChange
+WritePrinter
+XcvDataW
diff --git a/lib/libc/mingw/lib-common/ws2_32.def.in b/lib/libc/mingw/lib-common/ws2_32.def.in
@@ -0,0 +1,200 @@
+#include "func.def.in"
+
+LIBRARY "WS2_32.dll"
+EXPORTS
+accept
+bind
+closesocket
+connect
+getpeername
+getsockname
+getsockopt
+htonl
+htons
+ioctlsocket
+inet_addr
+inet_ntoa
+listen
+ntohl
+ntohs
+recv
+recvfrom
+select
+send
+sendto
+setsockopt
+shutdown
+socket
+WSApSetPostRoutine
+FreeAddrInfoEx
+FreeAddrInfoExW
+FreeAddrInfoW
+GetAddrInfoExA
+GetAddrInfoExCancel
+GetAddrInfoExOverlappedResult
+GetAddrInfoExW
+GetAddrInfoW
+GetHostNameW
+GetNameInfoW
+InetNtopW
+InetPtonW
+SetAddrInfoExA
+SetAddrInfoExW
+WPUCompleteOverlappedRequest
+WPUGetProviderPathEx
+WSAAccept
+WSAAddressToStringA
+WSAAddressToStringW
+WSAAdvertiseProvider
+WSACloseEvent
+WSAConnect
+WSAConnectByList
+WSAConnectByNameA
+WSAConnectByNameW
+WSACreateEvent
+gethostbyaddr
+gethostbyname
+getprotobyname
+getprotobynumber
+getservbyname
+getservbyport
+gethostname
+WSADuplicateSocketA
+WSADuplicateSocketW
+WSAEnumNameSpaceProvidersA
+WSAEnumNameSpaceProvidersExA
+WSAEnumNameSpaceProvidersExW
+WSAEnumNameSpaceProvidersW
+WSAEnumNetworkEvents
+WSAEnumProtocolsA
+WSAEnumProtocolsW
+WSAEventSelect
+WSAGetOverlappedResult
+WSAGetQOSByName
+WSAGetServiceClassInfoA
+WSAGetServiceClassInfoW
+WSAGetServiceClassNameByClassIdA
+WSAGetServiceClassNameByClassIdW
+WSAHtonl
+WSAHtons
+WSAInstallServiceClassA
+WSAInstallServiceClassW
+WSAIoctl
+WSAJoinLeaf
+WSALookupServiceBeginA
+WSALookupServiceBeginW
+WSALookupServiceEnd
+WSALookupServiceNextA
+WSALookupServiceNextW
+WSANSPIoctl
+WSANtohl
+WSANtohs
+WSAPoll
+WSAProviderCompleteAsyncCall
+WSAProviderConfigChange
+WSARecv
+WSARecvDisconnect
+WSARecvFrom
+WSARemoveServiceClass
+WSAResetEvent
+WSASend
+WSASendDisconnect
+WSASendMsg
+WSASendTo
+WSASetEvent
+WSAAsyncSelect
+WSAAsyncGetHostByAddr
+WSAAsyncGetHostByName
+WSAAsyncGetProtoByNumber
+WSAAsyncGetProtoByName
+WSAAsyncGetServByPort
+WSAAsyncGetServByName
+WSACancelAsyncRequest
+WSASetBlockingHook
+WSAUnhookBlockingHook
+WSAGetLastError
+WSASetLastError
+WSACancelBlockingCall
+WSAIsBlocking
+WSAStartup
+WSACleanup
+WSASetServiceA
+WSASetServiceW
+WSASocketA
+WSASocketW
+WSAStringToAddressA
+WSAStringToAddressW
+WSAUnadvertiseProvider
+WSAWaitForMultipleEvents
+WSCDeinstallProvider
+F64(WSCDeinstallProvider32)
+WSCDeinstallProviderEx
+WSCEnableNSProvider
+F64(WSCEnableNSProvider32)
+F64(WSCEnumNameSpaceProviders32)
+F64(WSCEnumNameSpaceProvidersEx32)
+WSCEnumProtocols
+WSCEnumProtocolsEx
+F64(WSCEnumProtocols32)
+WSCGetApplicationCategory
+WSCGetApplicationCategoryEx
+WSCGetProviderInfo
+F64(WSCGetProviderInfo32)
+WSCGetProviderPath
+F64(WSCGetProviderPath32)
+WSCInstallNameSpace
+F64(WSCInstallNameSpace32)
+WSCInstallNameSpaceEx
+WSCInstallNameSpaceEx2
+F64(WSCInstallNameSpaceEx32)
+WSCInstallProvider
+F64(WSCInstallProvider64_32)
+WSCInstallProviderAndChains
+F64(WSCInstallProviderAndChains64_32)
+WSCInstallProviderEx
+WSCSetApplicationCategory
+WSCSetApplicationCategoryEx
+WSCSetProviderInfo
+F64(WSCSetProviderInfo32)
+WSCUnInstallNameSpace
+F64(WSCUnInstallNameSpace32)
+WSCUnInstallNameSpaceEx2
+WSCUpdateProvider
+F64(WSCUpdateProvider32)
+WSCUpdateProviderEx
+WSCWriteNameSpaceOrder
+F64(WSCWriteNameSpaceOrder32)
+WSCWriteProviderOrder
+F64(WSCWriteProviderOrder32)
+WSCWriteProviderOrderEx
+WahCloseApcHelper
+__WSAFDIsSet
+WahCloseHandleHelper
+WahCloseNotificationHandleHelper
+WahCloseSocketHandle
+WahCloseThread
+WahCompleteRequest
+WahCreateHandleContextTable
+WahCreateNotificationHandle
+WahCreateSocketHandle
+WahDestroyHandleContextTable
+WahDisableNonIFSHandleSupport
+WahEnableNonIFSHandleSupport
+WahEnumerateHandleContexts
+WahInsertHandleContext
+WahNotifyAllProcesses
+WahOpenApcHelper
+WahOpenCurrentThread
+WahOpenHandleHelper
+WahOpenNotificationHandleHelper
+WahQueueUserApc
+WahReferenceContextByHandle
+WahRemoveHandleContext
+WahWaitForNotification
+WahWriteLSPEvent
+freeaddrinfo
+getaddrinfo
+getnameinfo
+inet_ntop
+inet_pton
+WEP
diff --git a/lib/libc/mingw/lib32/advapi32.def b/lib/libc/mingw/lib32/advapi32.def
@@ -0,0 +1,823 @@
+;
+; Definition file of ADVAPI32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "ADVAPI32.dll"
+EXPORTS
+ord_1000@8 @1000
+I_ScGetCurrentGroupStateW@12
+A_SHAFinal@8
+A_SHAInit@4
+A_SHAUpdate@12
+AbortSystemShutdownA@4
+AbortSystemShutdownW@4
+AccessCheck@32
+AccessCheckAndAuditAlarmA@44
+AccessCheckAndAuditAlarmW@44
+AccessCheckByType@44
+AccessCheckByTypeAndAuditAlarmA@64
+AccessCheckByTypeAndAuditAlarmW@64
+AccessCheckByTypeResultList@44
+AccessCheckByTypeResultListAndAuditAlarmA@64
+AccessCheckByTypeResultListAndAuditAlarmByHandleA@68
+AccessCheckByTypeResultListAndAuditAlarmByHandleW@68
+AccessCheckByTypeResultListAndAuditAlarmW@64
+AddAccessAllowedAce@16
+AddAccessAllowedAceEx@20
+AddAccessAllowedObjectAce@28
+AddAccessDeniedAce@16
+AddAccessDeniedAceEx@20
+AddAccessDeniedObjectAce@28
+AddAce@20
+AddAuditAccessAce@24
+AddAuditAccessAceEx@28
+AddAuditAccessObjectAce@36
+AddConditionalAce@32
+AddMandatoryAce@20
+AddUsersToEncryptedFile@8
+AddUsersToEncryptedFileEx@16
+AdjustTokenGroups@24
+AdjustTokenPrivileges@24
+AllocateAndInitializeSid@44
+AllocateLocallyUniqueId@4
+AreAllAccessesGranted@8
+AreAnyAccessesGranted@8
+AuditComputeEffectivePolicyBySid@16
+AuditComputeEffectivePolicyByToken@16
+AuditEnumerateCategories@8
+AuditEnumeratePerUserPolicy@4
+AuditEnumerateSubCategories@16
+AuditFree@4
+AuditLookupCategoryGuidFromCategoryId@8
+AuditLookupCategoryIdFromCategoryGuid@8
+AuditLookupCategoryNameA@8
+AuditLookupCategoryNameW@8
+AuditLookupSubCategoryNameA@8
+AuditLookupSubCategoryNameW@8
+AuditQueryGlobalSaclA@8
+AuditQueryGlobalSaclW@8
+AuditQueryPerUserPolicy@16
+AuditQuerySecurity@8
+AuditQuerySystemPolicy@12
+AuditSetGlobalSaclA@8
+AuditSetGlobalSaclW@8
+AuditSetPerUserPolicy@12
+AuditSetSecurity@8
+AuditSetSystemPolicy@8
+BackupEventLogA@8
+BackupEventLogW@8
+BuildExplicitAccessWithNameA@20
+BuildExplicitAccessWithNameW@20
+BuildImpersonateExplicitAccessWithNameA@24
+BuildImpersonateExplicitAccessWithNameW@24
+BuildImpersonateTrusteeA@8
+BuildImpersonateTrusteeW@8
+BuildSecurityDescriptorA@36
+BuildSecurityDescriptorW@36
+BuildTrusteeWithNameA@8
+BuildTrusteeWithNameW@8
+BuildTrusteeWithObjectsAndNameA@24
+BuildTrusteeWithObjectsAndNameW@24
+BuildTrusteeWithObjectsAndSidA@20
+BuildTrusteeWithObjectsAndSidW@20
+BuildTrusteeWithSidA@8
+BuildTrusteeWithSidW@8
+CancelOverlappedAccess@4
+ChangeServiceConfig2A@12
+ChangeServiceConfig2W@12
+ChangeServiceConfigA@44
+ChangeServiceConfigW@44
+CheckTokenMembership@12
+ClearEventLogA@8
+ClearEventLogW@8
+CloseCodeAuthzLevel@4
+CloseEncryptedFileRaw@4
+CloseEventLog@4
+CloseServiceHandle@4
+CloseThreadWaitChainSession@4
+CloseTrace@8
+CommandLineFromMsiDescriptor@12
+ComputeAccessTokenFromCodeAuthzLevel@20
+ControlService@12
+ControlServiceExA@16
+ControlServiceExW@16
+ControlTraceA@20
+ControlTraceW@20
+ConvertAccessToSecurityDescriptorA@20
+ConvertAccessToSecurityDescriptorW@20
+ConvertSDToStringSDRootDomainA@24
+ConvertSDToStringSDRootDomainW@24
+ConvertSecurityDescriptorToAccessA@28
+ConvertSecurityDescriptorToAccessNamedA@28
+ConvertSecurityDescriptorToAccessNamedW@28
+ConvertSecurityDescriptorToAccessW@28
+ConvertSecurityDescriptorToStringSecurityDescriptorA@20
+ConvertSecurityDescriptorToStringSecurityDescriptorW@20
+ConvertSidToStringSidA@8
+ConvertSidToStringSidW@8
+ConvertStringSDToSDDomainA@24
+ConvertStringSDToSDDomainW@24
+ConvertStringSDToSDRootDomainA@20
+ConvertStringSDToSDRootDomainW@20
+ConvertStringSecurityDescriptorToSecurityDescriptorA@16
+ConvertStringSecurityDescriptorToSecurityDescriptorW@16
+ConvertStringSidToSidA@8
+ConvertStringSidToSidW@8
+ConvertToAutoInheritPrivateObjectSecurity@24
+CopySid@12
+CreateCodeAuthzLevel@20
+CreatePrivateObjectSecurity@24
+CreatePrivateObjectSecurityEx@32
+CreatePrivateObjectSecurityWithMultipleInheritance@36
+CreateProcessAsUserA@44
+CreateProcessAsUserW@44
+CreateProcessWithLogonW@44
+CreateProcessWithTokenW@36
+CreateRestrictedToken@36
+CreateServiceA@52
+CreateServiceW@52
+CreateTraceInstanceId@8
+CreateWellKnownSid@16
+CredBackupCredentials@20
+CredDeleteA@12
+CredDeleteW@12
+CredEncryptAndMarshalBinaryBlob@12
+CredEnumerateA@16
+CredEnumerateW@16
+CredFindBestCredentialA@16
+CredFindBestCredentialW@16
+CredFree@4
+CredGetSessionTypes@8
+CredGetTargetInfoA@12
+CredGetTargetInfoW@12
+CredIsMarshaledCredentialA@4
+CredIsMarshaledCredentialW@4
+CredIsProtectedA@8
+CredIsProtectedW@8
+CredMarshalCredentialA@12
+CredMarshalCredentialW@12
+CredProfileLoaded@0
+CredProfileUnloaded@0
+CredProtectA@24
+CredProtectW@24
+CredReadA@16
+CredReadByTokenHandle@20
+CredReadDomainCredentialsA@16
+CredReadDomainCredentialsW@16
+CredReadW@16
+CredRenameA@16
+CredRenameW@16
+CredRestoreCredentials@16
+CredUnmarshalCredentialA@12
+CredUnmarshalCredentialW@12
+CredUnprotectA@20
+CredUnprotectW@20
+CredWriteA@8
+CredWriteDomainCredentialsA@12
+CredWriteDomainCredentialsW@12
+CredWriteW@8
+CredpConvertCredential@16
+CredpConvertOneCredentialSize@8
+CredpConvertTargetInfo@16
+CredpDecodeCredential@4
+CredpEncodeCredential@4
+CredpEncodeSecret@20
+CryptAcquireContextA@20
+CryptAcquireContextW@20
+CryptContextAddRef@12
+CryptCreateHash@20
+CryptDecrypt@24
+CryptDeriveKey@20
+CryptDestroyHash@4
+CryptDestroyKey@4
+CryptDuplicateHash@16
+CryptDuplicateKey@16
+CryptEncrypt@28
+CryptEnumProviderTypesA@24
+CryptEnumProviderTypesW@24
+CryptEnumProvidersA@24
+CryptEnumProvidersW@24
+CryptExportKey@24
+CryptGenKey@16
+CryptGenRandom@12
+CryptGetDefaultProviderA@20
+CryptGetDefaultProviderW@20
+CryptGetHashParam@20
+CryptGetKeyParam@20
+CryptGetProvParam@20
+CryptGetUserKey@12
+CryptHashData@16
+CryptHashSessionKey@12
+CryptImportKey@24
+CryptReleaseContext@8
+CryptSetHashParam@16
+CryptSetKeyParam@16
+CryptSetProvParam@16
+CryptSetProviderA@8
+CryptSetProviderExA@16
+CryptSetProviderExW@16
+CryptSetProviderW@8
+CryptSignHashA@24
+CryptSignHashW@24
+CryptVerifySignatureA@24
+CryptVerifySignatureW@24
+DecryptFileA@8
+DecryptFileW@8
+DeleteAce@8
+DeleteService@4
+DeregisterEventSource@4
+DestroyPrivateObjectSecurity@4
+DuplicateEncryptionInfoFile@20
+DuplicateToken@12
+DuplicateTokenEx@24
+ElfBackupEventLogFileA@8
+ElfBackupEventLogFileW@8
+ElfChangeNotify@8
+ElfClearEventLogFileA@8
+ElfClearEventLogFileW@8
+ElfCloseEventLog@4
+ElfDeregisterEventSource@4
+ElfFlushEventLog@4
+ElfNumberOfRecords@8
+ElfOldestRecord@8
+ElfOpenBackupEventLogA@12
+ElfOpenBackupEventLogW@12
+ElfOpenEventLogA@12
+ElfOpenEventLogW@12
+ElfReadEventLogA@28
+ElfReadEventLogW@28
+ElfRegisterEventSourceA@12
+ElfRegisterEventSourceW@12
+ElfReportEventA@48
+ElfReportEventAndSourceW@60
+ElfReportEventW@48
+EnableTrace@24
+EnableTraceEx2@44
+EnableTraceEx@48
+EncryptFileA@4
+EncryptFileW@4
+EncryptedFileKeyInfo@12
+EncryptionDisable@8
+EnumDependentServicesA@24
+EnumDependentServicesW@24
+EnumServiceGroupW@36
+EnumServicesStatusA@32
+EnumServicesStatusExA@40
+EnumServicesStatusExW@40
+EnumServicesStatusW@32
+EnumerateTraceGuids@12
+EnumerateTraceGuidsEx@24
+EqualDomainSid@12
+EqualPrefixSid@8
+EqualSid@8
+EventAccessControl@20
+EventAccessQuery@12
+EventAccessRemove@4
+EventActivityIdControl@8
+EventEnabled@12
+EventProviderEnabled@20
+EventRegister@16
+EventUnregister@8
+EventWrite@20
+EventWriteEndScenario@20
+EventWriteEx@40
+EventWriteStartScenario@20
+EventWriteString@24
+EventWriteTransfer@28
+FileEncryptionStatusA@8
+FileEncryptionStatusW@8
+FindFirstFreeAce@8
+FlushEfsCache@4
+FlushTraceA@16
+FlushTraceW@16
+FreeEncryptedFileKeyInfo@4
+FreeEncryptedFileMetadata@4
+FreeEncryptionCertificateHashList@4
+FreeInheritedFromArray@12
+FreeSid@4
+GetAccessPermissionsForObjectA@36
+GetAccessPermissionsForObjectW@36
+GetAce@12
+GetAclInformation@16
+GetAuditedPermissionsFromAclA@16
+GetAuditedPermissionsFromAclW@16
+GetCurrentHwProfileA@4
+GetCurrentHwProfileW@4
+GetEffectiveRightsFromAclA@12
+GetEffectiveRightsFromAclW@12
+GetEncryptedFileMetadata@12
+GetEventLogInformation@20
+GetExplicitEntriesFromAclA@12
+GetExplicitEntriesFromAclW@12
+GetFileSecurityA@20
+GetFileSecurityW@20
+GetInformationCodeAuthzLevelW@20
+GetInformationCodeAuthzPolicyW@24
+GetInheritanceSourceA@40
+GetInheritanceSourceW@40
+GetKernelObjectSecurity@20
+GetLengthSid@4
+GetLocalManagedApplicationData@12
+GetLocalManagedApplications@12
+GetManagedApplicationCategories@8
+GetManagedApplications@20
+GetMangledSiteSid@12
+GetMultipleTrusteeA@4
+GetMultipleTrusteeOperationA@4
+GetMultipleTrusteeOperationW@4
+GetMultipleTrusteeW@4
+GetNamedSecurityInfoA@32
+GetNamedSecurityInfoExA@36
+GetNamedSecurityInfoExW@36
+GetNamedSecurityInfoW@32
+GetNumberOfEventLogRecords@8
+GetOldestEventLogRecord@8
+GetOverlappedAccessResults@16
+GetPrivateObjectSecurity@20
+GetSecurityDescriptorControl@12
+GetSecurityDescriptorDacl@16
+GetSecurityDescriptorGroup@12
+GetSecurityDescriptorLength@4
+GetSecurityDescriptorOwner@12
+GetSecurityDescriptorRMControl@8
+GetSecurityDescriptorSacl@16
+GetSecurityInfo@32
+GetSecurityInfoExA@36
+GetSecurityInfoExW@36
+GetServiceDisplayNameA@16
+GetServiceDisplayNameW@16
+GetServiceKeyNameA@16
+GetServiceKeyNameW@16
+GetSidIdentifierAuthority@4
+GetSidLengthRequired@4
+GetSidSubAuthority@8
+GetSidSubAuthorityCount@4
+GetSiteDirectoryA@12
+GetSiteDirectoryW@12
+GetSiteNameFromSid@8
+GetSiteSidFromToken@4
+GetSiteSidFromUrl@4
+GetThreadWaitChain@28
+GetTokenInformation@20
+GetTraceEnableFlags@8
+GetTraceEnableLevel@8
+GetTraceLoggerHandle@4
+GetTrusteeFormA@4
+GetTrusteeFormW@4
+GetTrusteeNameA@4
+GetTrusteeNameW@4
+GetTrusteeTypeA@4
+GetTrusteeTypeW@4
+GetUserNameA@8
+GetUserNameW@8
+GetWindowsAccountDomainSid@12
+I_QueryTagInformation@12
+I_ScIsSecurityProcess@0
+I_ScPnPGetServiceName@12
+I_ScQueryServiceConfig@12
+I_ScSendPnPMessage@24
+I_ScSendTSMessage@16
+I_ScSetServiceBitsA@20
+I_ScSetServiceBitsW@20
+I_ScValidatePnPService@12
+IdentifyCodeAuthzLevelW@16
+ImpersonateAnonymousToken@4
+ImpersonateLoggedOnUser@4
+ImpersonateNamedPipeClient@4
+ImpersonateSelf@4
+InitializeAcl@12
+InitializeSecurityDescriptor@8
+InitializeSid@12
+InitiateShutdownA@20
+InitiateShutdownW@20
+InitiateSystemShutdownA@20
+InitiateSystemShutdownExA@24
+InitiateSystemShutdownExW@24
+InitiateSystemShutdownW@20
+InstallApplication@4
+IsProcessRestricted@0
+IsTextUnicode@12
+IsTokenRestricted@4
+IsTokenUntrusted@4
+IsValidAcl@4
+IsValidRelativeSecurityDescriptor@12
+IsValidSecurityDescriptor@4
+IsValidSid@4
+IsWellKnownSid@8
+LockServiceDatabase@4
+LogonUserA@24
+LogonUserExA@40
+LogonUserExExW@44
+LogonUserExW@40
+LogonUserW@24
+LookupAccountNameA@28
+LookupAccountNameW@28
+LookupAccountSidA@28
+LookupAccountSidW@28
+LookupPrivilegeDisplayNameA@20
+LookupPrivilegeDisplayNameW@20
+LookupPrivilegeNameA@16
+LookupPrivilegeNameW@16
+LookupPrivilegeValueA@12
+LookupPrivilegeValueW@12
+LookupSecurityDescriptorPartsA@28
+LookupSecurityDescriptorPartsW@28
+LsaAddAccountRights@16
+LsaAddPrivilegesToAccount@8
+LsaClearAuditLog@4
+LsaClose@4
+LsaCreateAccount@16
+LsaCreateSecret@16
+LsaCreateTrustedDomain@16
+LsaCreateTrustedDomainEx@20
+LsaDelete@4
+LsaDeleteTrustedDomain@8
+LsaEnumerateAccountRights@16
+LsaEnumerateAccounts@20
+LsaEnumerateAccountsWithUserRight@16
+LsaEnumeratePrivileges@20
+LsaEnumeratePrivilegesOfAccount@8
+LsaEnumerateTrustedDomains@20
+LsaEnumerateTrustedDomainsEx@20
+LsaFreeMemory@4
+LsaGetQuotasForAccount@8
+LsaGetRemoteUserName@12
+LsaGetSystemAccessAccount@8
+LsaGetUserName@8
+LsaICLookupNames@40
+LsaICLookupNamesWithCreds@48
+LsaICLookupSids@36
+LsaICLookupSidsWithCreds@48
+LsaLookupNames2@24
+LsaLookupNames@20
+LsaLookupPrivilegeDisplayName@16
+LsaLookupPrivilegeName@12
+LsaLookupPrivilegeValue@12
+LsaLookupSids@20
+LsaManageSidNameMapping@12
+LsaNtStatusToWinError@4
+LsaOpenAccount@16
+LsaOpenPolicy@16
+LsaOpenPolicySce@16
+LsaOpenSecret@16
+LsaOpenTrustedDomain@16
+LsaOpenTrustedDomainByName@16
+LsaQueryDomainInformationPolicy@12
+LsaQueryForestTrustInformation@12
+LsaQueryInfoTrustedDomain@12
+LsaQueryInformationPolicy@12
+LsaQuerySecret@20
+LsaQuerySecurityObject@12
+LsaQueryTrustedDomainInfo@16
+LsaQueryTrustedDomainInfoByName@16
+LsaRemoveAccountRights@20
+LsaRemovePrivilegesFromAccount@12
+LsaRetrievePrivateData@12
+LsaSetDomainInformationPolicy@12
+LsaSetForestTrustInformation@20
+LsaSetInformationPolicy@12
+LsaSetInformationTrustedDomain@12
+LsaSetQuotasForAccount@8
+LsaSetSecret@12
+LsaSetSecurityObject@12
+LsaSetSystemAccessAccount@8
+LsaSetTrustedDomainInfoByName@16
+LsaSetTrustedDomainInformation@16
+LsaStorePrivateData@12
+MD4Final@4
+MD4Init@4
+MD4Update@12
+MD5Final@4
+MD5Init@4
+MD5Update@12
+MSChapSrvChangePassword2@28
+MSChapSrvChangePassword@28
+MakeAbsoluteSD2@8
+MakeAbsoluteSD@44
+MakeSelfRelativeSD@12
+MapGenericMask@8
+NotifyBootConfigStatus@4
+NotifyChangeEventLog@8
+NotifyServiceStatusChange@12
+NotifyServiceStatusChangeA@12
+NotifyServiceStatusChangeW@12
+ObjectCloseAuditAlarmA@12
+ObjectCloseAuditAlarmW@12
+ObjectDeleteAuditAlarmA@12
+ObjectDeleteAuditAlarmW@12
+ObjectOpenAuditAlarmA@48
+ObjectOpenAuditAlarmW@48
+ObjectPrivilegeAuditAlarmA@24
+ObjectPrivilegeAuditAlarmW@24
+OpenBackupEventLogA@8
+OpenBackupEventLogW@8
+OpenEncryptedFileRawA@12
+OpenEncryptedFileRawW@12
+OpenEventLogA@8
+OpenEventLogW@8
+OpenProcessToken@12
+OpenSCManagerA@12
+OpenSCManagerW@12
+OpenServiceA@12
+OpenServiceW@12
+OpenThreadToken@16
+OpenThreadWaitChainSession@8
+OpenTraceA@4
+OpenTraceW@4
+PerfAddCounters@12
+PerfCloseQueryHandle@4
+PerfCreateInstance@16
+PerfDecrementULongCounterValue@16
+PerfDecrementULongLongCounterValue@20
+PerfDeleteCounters@12
+PerfDeleteInstance@8
+PerfEnumerateCounterSet@16
+PerfEnumerateCounterSetInstances@20
+PerfIncrementULongCounterValue@16
+PerfIncrementULongLongCounterValue@20
+PerfOpenQueryHandle@8
+PerfQueryCounterData@16
+PerfQueryCounterInfo@16
+PerfQueryCounterSetRegistrationInfo@28
+PerfQueryInstance@16
+PerfSetCounterRefValue@16
+PerfSetCounterSetInfo@12
+PerfSetULongCounterValue@16
+PerfSetULongLongCounterValue@20
+PerfStartProvider@12
+PerfStartProviderEx@12
+PerfStopProvider@4
+PrivilegeCheck@12
+PrivilegedServiceAuditAlarmA@20
+PrivilegedServiceAuditAlarmW@20
+ProcessIdleTasks@0
+ProcessIdleTasksW@16
+ProcessTrace@16
+QueryAllTracesA@12
+QueryAllTracesW@12
+QueryRecoveryAgentsOnEncryptedFile@8
+QuerySecurityAccessMask@8
+QueryServiceConfig2A@20
+QueryServiceConfig2W@20
+QueryServiceConfigA@16
+QueryServiceConfigW@16
+QueryServiceLockStatusA@16
+QueryServiceLockStatusW@16
+QueryServiceObjectSecurity@20
+QueryServiceStatus@8
+QueryServiceStatusEx@20
+QueryTraceA@16
+QueryTraceW@16
+QueryUsersOnEncryptedFile@8
+QueryWindows31FilesMigration@4
+ReadEncryptedFileRaw@12
+ReadEventLogA@28
+ReadEventLogW@28
+RegCloseKey@4
+RegConnectRegistryA@12
+RegConnectRegistryExA@16
+RegConnectRegistryExW@16
+RegConnectRegistryW@12
+RegCopyTreeA@12
+RegCopyTreeW@12
+RegCreateKeyA@12
+RegCreateKeyExA@36
+RegCreateKeyExW@36
+RegCreateKeyTransactedA@44
+RegCreateKeyTransactedW@44
+RegCreateKeyW@12
+RegDeleteKeyA@8
+RegDeleteKeyW@8
+RegDeleteKeyExA@16
+RegDeleteKeyExW@16
+RegDeleteKeyTransactedA@24
+RegDeleteKeyTransactedW@24
+RegDeleteKeyValueA@12
+RegDeleteKeyValueW@12
+RegDeleteKeyW@8
+RegDeleteTreeA@8
+RegDeleteTreeW@8
+RegDeleteValueA@8
+RegDeleteValueW@8
+RegDisablePredefinedCache@0
+RegDisablePredefinedCacheEx@0
+RegDisableReflectionKey@4
+RegEnableReflectionKey@4
+RegEnumKeyA@16
+RegEnumKeyExA@32
+RegEnumKeyExW@32
+RegEnumKeyW@16
+RegEnumValueA@32
+RegEnumValueW@32
+RegFlushKey@4
+RegGetKeySecurity@16
+RegGetValueA@28
+RegGetValueW@28
+RegLoadAppKeyA@20
+RegLoadAppKeyW@20
+RegLoadKeyA@12
+RegLoadKeyW@12
+RegLoadMUIStringA@28
+RegLoadMUIStringW@28
+RegNotifyChangeKeyValue@20
+RegOpenCurrentUser@8
+RegOpenKeyA@12
+RegOpenKeyExA@20
+RegOpenKeyExW@20
+RegOpenKeyTransactedA@28
+RegOpenKeyTransactedW@28
+RegOpenKeyW@12
+RegOpenUserClassesRoot@16
+RegOverridePredefKey@8
+RegQueryInfoKeyA@48
+RegQueryInfoKeyW@48
+RegQueryMultipleValuesA@20
+RegQueryMultipleValuesW@20
+RegQueryReflectionKey@8
+RegQueryValueA@16
+RegQueryValueExA@24
+RegQueryValueExW@24
+RegQueryValueW@16
+RegRenameKey@12
+RegReplaceKeyA@16
+RegReplaceKeyW@16
+RegRestoreKeyA@12
+RegRestoreKeyW@12
+RegSaveKeyA@12
+RegSaveKeyExA@16
+RegSaveKeyExW@16
+RegSaveKeyW@12
+RegSetKeySecurity@12
+RegSetKeyValueA@24
+RegSetKeyValueW@24
+RegSetValueA@20
+RegSetValueExA@24
+RegSetValueExW@24
+RegSetValueW@20
+RegUnLoadKeyA@8
+RegUnLoadKeyW@8
+RegisterEventSourceA@8
+RegisterEventSourceW@8
+RegisterIdleTask@16
+RegisterServiceCtrlHandlerA@8
+RegisterServiceCtrlHandlerExA@12
+RegisterServiceCtrlHandlerExW@12
+RegisterServiceCtrlHandlerW@8
+RegisterTraceGuidsA@32
+RegisterTraceGuidsW@32
+RegisterWaitChainCOMCallback@8
+RemoveTraceCallback@4
+RemoveUsersFromEncryptedFile@8
+ReportEventA@36
+ReportEventW@36
+RevertToSelf@0
+SaferCloseLevel@4
+SaferComputeTokenFromLevel@20
+SaferCreateLevel@20
+SaferGetLevelInformation@20
+SaferGetPolicyInformation@24
+SaferIdentifyLevel@16
+SaferRecordEventLogEntry@12
+SaferSetLevelInformation@16
+SaferSetPolicyInformation@20
+SaferiChangeRegistryScope@8
+SaferiCompareTokenLevels@12
+SaferiIsDllAllowed@12
+SaferiIsExecutableFileType@8
+SaferiPopulateDefaultsInRegistry@8
+SaferiRecordEventLogEntry@12
+SaferiSearchMatchingHashRules@24
+SetAclInformation@16
+SetEncryptedFileMetadata@24
+SetEntriesInAccessListA@24
+SetEntriesInAccessListW@24
+SetEntriesInAclA@16
+SetEntriesInAclW@16
+SetEntriesInAuditListA@24
+SetEntriesInAuditListW@24
+SetFileSecurityA@12
+SetFileSecurityW@12
+SetInformationCodeAuthzLevelW@16
+SetInformationCodeAuthzPolicyW@20
+SetKernelObjectSecurity@12
+SetNamedSecurityInfoA@28
+SetNamedSecurityInfoExA@36
+SetNamedSecurityInfoExW@36
+SetNamedSecurityInfoW@28
+SetPrivateObjectSecurity@20
+SetPrivateObjectSecurityEx@24
+SetSecurityAccessMask@8
+SetSecurityDescriptorControl@12
+SetSecurityDescriptorDacl@16
+SetSecurityDescriptorGroup@12
+SetSecurityDescriptorOwner@12
+SetSecurityDescriptorRMControl@8
+SetSecurityDescriptorSacl@16
+SetSecurityInfo@28
+SetSecurityInfoExA@36
+SetSecurityInfoExW@36
+SetServiceBits@16
+SetServiceObjectSecurity@12
+SetServiceStatus@8
+SetThreadToken@8
+SetTokenInformation@16
+SetTraceCallback@8
+SetUserFileEncryptionKey@4
+SetUserFileEncryptionKeyEx@16
+StartServiceA@12
+StartServiceCtrlDispatcherA@4
+StartServiceCtrlDispatcherW@4
+StartServiceW@12
+StartTraceA@12
+StartTraceW@12
+SynchronizeWindows31FilesAndWindowsNTRegistry@16
+StopTraceA@16
+StopTraceW@16
+SystemFunction001@12
+SystemFunction002@12
+SystemFunction003@8
+SystemFunction004@12
+SystemFunction005@12
+SystemFunction006@8
+SystemFunction007@8
+SystemFunction008@12
+SystemFunction009@12
+SystemFunction010@12
+SystemFunction011@12
+SystemFunction012@12
+SystemFunction013@12
+SystemFunction014@12
+SystemFunction015@12
+SystemFunction016@12
+SystemFunction017@12
+SystemFunction018@12
+SystemFunction019@12
+SystemFunction020@12
+SystemFunction021@12
+SystemFunction022@12
+SystemFunction023@12
+SystemFunction024@12
+SystemFunction025@12
+SystemFunction026@12
+SystemFunction027@12
+SystemFunction028@8
+SystemFunction029@8
+SystemFunction030@8
+SystemFunction031@8
+SystemFunction032@8
+SystemFunction033@8
+SystemFunction034@12
+SystemFunction035@4
+SystemFunction036@8
+SystemFunction040@12
+SystemFunction041@12
+TraceEvent@12
+TraceEventInstance@20
+TraceMessage
+TraceMessageVa@24
+TraceSetInformation@20
+TreeResetNamedSecurityInfoA@44
+TreeResetNamedSecurityInfoW@44
+TreeSetNamedSecurityInfoA@44
+TreeSetNamedSecurityInfoW@44
+TrusteeAccessToObjectA@24
+TrusteeAccessToObjectW@24
+UninstallApplication@8
+UnlockServiceDatabase@4
+UnregisterIdleTask@12
+UnregisterTraceGuids@8
+UpdateTraceA@16
+UpdateTraceW@16
+UsePinForEncryptedFilesA@12
+UsePinForEncryptedFilesW@12
+WmiCloseBlock@4
+WmiDevInstToInstanceNameA@16
+WmiDevInstToInstanceNameW@16
+WmiEnumerateGuids@8
+WmiExecuteMethodA@28
+WmiExecuteMethodW@28
+WmiFileHandleToInstanceNameA@16
+WmiFileHandleToInstanceNameW@16
+WmiFreeBuffer@4
+WmiMofEnumerateResourcesA@12
+WmiMofEnumerateResourcesW@12
+WmiNotificationRegistrationA@20
+WmiNotificationRegistrationW@20
+WmiOpenBlock@12
+WmiQueryAllDataA@12
+WmiQueryAllDataMultipleA@16
+WmiQueryAllDataMultipleW@16
+WmiQueryAllDataW@12
+WmiQueryGuidInformation@8
+WmiQuerySingleInstanceA@16
+WmiQuerySingleInstanceMultipleA@20
+WmiQuerySingleInstanceMultipleW@20
+WmiQuerySingleInstanceW@16
+WmiReceiveNotificationsA@16
+WmiReceiveNotificationsW@16
+WmiSetSingleInstanceA@20
+WmiSetSingleInstanceW@20
+WmiSetSingleItemA@24
+WmiSetSingleItemW@24
+WriteEncryptedFileRaw@12
diff --git a/lib/libc/mingw/lib32/bcrypt.def b/lib/libc/mingw/lib32/bcrypt.def
@@ -0,0 +1,67 @@
+;
+; Definition file of bcrypt.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "bcrypt.dll"
+EXPORTS
+BCryptAddContextFunction@20
+BCryptAddContextFunctionProvider@24
+BCryptCloseAlgorithmProvider@8
+BCryptConfigureContext@12
+BCryptConfigureContextFunction@20
+BCryptCreateContext@12
+BCryptCreateHash@28
+BCryptDecrypt@40
+BCryptDeleteContext@8
+BCryptDeriveKey@28
+BCryptDeriveKeyCapi@20
+BCryptDeriveKeyPBKDF2@40
+BCryptDestroyHash@4
+BCryptDestroyKey@4
+BCryptDestroySecret@4
+BCryptDuplicateHash@20
+BCryptDuplicateKey@20
+BCryptEncrypt@40
+BCryptEnumAlgorithms@16
+BCryptEnumContextFunctionProviders@24
+BCryptEnumContextFunctions@20
+BCryptEnumContexts@12
+BCryptEnumProviders@16
+BCryptEnumRegisteredProviders@8
+BCryptExportKey@28
+BCryptFinalizeKeyPair@8
+BCryptFinishHash@16
+BCryptFreeBuffer@4
+BCryptGenRandom@16
+BCryptGenerateKeyPair@16
+BCryptGenerateSymmetricKey@28
+BCryptGetFipsAlgorithmMode@4
+BCryptGetProperty@24
+BCryptHashData@16
+BCryptImportKey@36
+BCryptImportKeyPair@28
+BCryptOpenAlgorithmProvider@16
+BCryptQueryContextConfiguration@16
+BCryptQueryContextFunctionConfiguration@24
+BCryptQueryContextFunctionProperty@28
+BCryptQueryProviderRegistration@20
+BCryptRegisterConfigChangeNotify@4
+BCryptRegisterProvider@12
+BCryptRemoveContextFunction@16
+BCryptRemoveContextFunctionProvider@20
+BCryptResolveProviders@32
+BCryptSecretAgreement@16
+BCryptSetAuditingInterface@4
+BCryptSetContextFunctionProperty@28
+BCryptSetProperty@20
+BCryptSignHash@32
+BCryptUnregisterConfigChangeNotify@4
+BCryptUnregisterProvider@4
+BCryptVerifySignature@28
+GetAsymmetricEncryptionInterface@16
+GetCipherInterface@16
+GetHashInterface@16
+GetRngInterface@12
+GetSecretAgreementInterface@16
+GetSignatureInterface@16
diff --git a/lib/libc/mingw/lib32/comctl32.def b/lib/libc/mingw/lib32/comctl32.def
@@ -0,0 +1,119 @@
+LIBRARY COMCTL32.DLL
+EXPORTS
+_TrackMouseEvent@4
+AddMRUData@12
+AddMRUStringA@8
+AddMRUStringW@8
+Alloc@4
+CreateMRUListA@4
+CreateMRUListW@4
+CreateMappedBitmap@20
+CreatePage@8
+CreatePropertySheetPage@4
+CreatePropertySheetPageA@4
+CreatePropertySheetPageW@4
+CreateProxyPage@8
+CreateStatusWindow@16
+CreateStatusWindowA@16
+CreateStatusWindowW@16
+CreateToolbar@32
+CreateToolbarEx@52
+CreateUpDownControl@48
+DPA_Clone@8
+DPA_Create@4
+DPA_CreateEx@8
+DPA_DeleteAllPtrs@4
+DPA_DeletePtr@8
+DPA_Destroy@4
+DPA_GetPtr@8
+DPA_GetPtrIndex@8
+DPA_Grow@8
+DPA_InsertPtr@12
+DPA_Search@24
+DPA_SetPtr@12
+DPA_Sort@12
+DSA_Create@8
+DSA_DeleteAllItems@4
+DSA_DeleteItem@8
+DSA_Destroy@4
+DSA_GetItem@12
+DSA_GetItemPtr@8
+DSA_InsertItem@12
+DSA_SetItem@12
+DefSubclassProc@16
+DelMRUString@8
+DestroyPropertySheetPage@4
+DrawInsert@12
+DrawStatusText@16
+DrawStatusTextA@16
+DrawStatusTextW@16
+EnumMRUListA@16
+EnumMRUListW@16
+FindMRUData@16
+FindMRUStringA@12
+FindMRUStringW@12
+Free@4
+FreeMRUList@4
+GetEffectiveClientRect@12
+GetMUILanguage@0
+GetSize@4
+GetWindowSubclass@16
+ImageList_Add@12
+ImageList_AddIcon@8
+ImageList_AddMasked@12
+ImageList_BeginDrag@16
+ImageList_Copy@20
+ImageList_Create@20
+ImageList_Destroy@4
+ImageList_DragEnter@12
+ImageList_DragLeave@4
+ImageList_DragMove@8
+ImageList_DragShowNolock@4
+ImageList_Draw@24
+ImageList_DrawEx@40
+ImageList_DrawIndirect@4
+ImageList_Duplicate@4
+ImageList_EndDrag@0
+ImageList_GetBkColor@4
+ImageList_GetDragImage@8
+ImageList_GetIcon@12
+ImageList_GetIconSize@12
+ImageList_GetImageCount@4
+ImageList_GetImageInfo@12
+ImageList_GetImageRect@12
+ImageList_LoadImage@28
+ImageList_LoadImageA@28
+ImageList_LoadImageW@28
+ImageList_Merge@24
+ImageList_Read@4
+ImageList_Remove@8
+ImageList_Replace@16
+ImageList_ReplaceIcon@12
+ImageList_SetBkColor@8
+ImageList_SetDragCursorImage@16
+ImageList_SetIconSize@12
+ImageList_SetImageCount@8
+ImageList_SetOverlayImage@12
+ImageList_Write@8
+InitCommonControls@0
+InitCommonControlsEx@4
+InitMUILanguage@4
+LBItemFromPt@16
+LoadIconMetric@16
+MakeDragList@4
+MenuHelp@28
+PropertySheet@4
+PropertySheetA@4
+PropertySheetW@4
+ReAlloc@8
+RemoveWindowSubclass@12
+SendNotify@16
+SendNotifyEx@20
+SetWindowSubclass@16
+ShowHideMenuCtl@12
+Str_GetPtrA@12
+Str_GetPtrW@12
+Str_SetPtrA@8
+Str_SetPtrW@8
+TaskDialog@32
+TaskDialogIndirect@16
diff --git a/lib/libc/mingw/lib32/comdlg32.def b/lib/libc/mingw/lib32/comdlg32.def
@@ -0,0 +1,27 @@
+LIBRARY COMDLG32.DLL
+EXPORTS
+ChooseColorA@4
+ChooseColorW@4
+ChooseFontA@4
+ChooseFontW@4
+CommDlgExtendedError@0
+FindTextA@4
+FindTextW@4
+GetFileTitleA@12
+GetFileTitleW@12
+GetOpenFileNameA@4
+GetOpenFileNameW@4
+GetSaveFileNameA@4
+GetSaveFileNameW@4
+LoadAlterBitmap@12
+PageSetupDlgA@4
+PageSetupDlgW@4
+PrintDlgA@4
+PrintDlgExA@4
+PrintDlgExW@4
+PrintDlgW@4
+ReplaceTextA@4
+ReplaceTextW@4
+WantArrows@16
+dwLBSubclass@16
+dwOKSubclass@16
diff --git a/lib/libc/mingw/lib32/crypt32.def b/lib/libc/mingw/lib32/crypt32.def
@@ -0,0 +1,314 @@
+;
+; Definition file of CRYPT32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "CRYPT32.dll"
+EXPORTS
+CryptAcquireContextU@20
+CryptEnumProvidersU@24
+CryptObjectLocatorFree@4
+CryptObjectLocatorGet@12
+CryptObjectLocatorGetContent@4
+CryptObjectLocatorGetUpdated@4
+CryptObjectLocatorInitialize@20
+CryptObjectLocatorIsChanged@4
+CryptObjectLocatorRelease@8
+CryptSetProviderU@8
+CryptSignHashU@24
+CryptVerifySignatureU@24
+I_PFXImportCertStoreEx@20
+RegCreateKeyExU@36
+RegDeleteValueU@8
+RegEnumValueU@32
+RegOpenKeyExU@20
+RegQueryInfoKeyU@48
+RegQueryValueExU@24
+RegSetValueExU@24
+CertAddCRLContextToStore@16
+CertAddCRLLinkToStore@16
+CertAddCTLContextToStore@16
+CertAddCTLLinkToStore@16
+CertAddCertificateContextToStore@16
+CertAddCertificateLinkToStore@16
+CertAddEncodedCRLToStore@24
+CertAddEncodedCTLToStore@24
+CertAddEncodedCertificateToStore@24
+CertAddEncodedCertificateToSystemStoreA@12
+CertAddEncodedCertificateToSystemStoreW@12
+CertAddEnhancedKeyUsageIdentifier@8
+CertAddRefServerOcspResponse@4
+CertAddRefServerOcspResponseContext@4
+CertAddSerializedElementToStore@32
+CertAddStoreToCollection@16
+CertAlgIdToOID@4
+CertCloseServerOcspResponse@8
+CertCloseStore@8
+CertCompareCertificate@12
+CertCompareCertificateName@12
+CertCompareIntegerBlob@8
+CertComparePublicKeyInfo@12
+CertControlStore@16
+CertCreateCRLContext@12
+CertCreateCTLContext@12
+CertCreateCTLEntryFromCertificateContextProperties@28
+CertCreateCertificateChainEngine@8
+CertCreateCertificateContext@12
+CertCreateContext@24
+CertCreateSelfSignCertificate@32
+CertDeleteCRLFromStore@4
+CertDeleteCTLFromStore@4
+CertDeleteCertificateFromStore@4
+CertDuplicateCRLContext@4
+CertDuplicateCTLContext@4
+CertDuplicateCertificateChain@4
+CertDuplicateCertificateContext@4
+CertDuplicateStore@4
+CertEnumCRLContextProperties@8
+CertEnumCRLsInStore@8
+CertEnumCTLContextProperties@8
+CertEnumCTLsInStore@8
+CertEnumCertificateContextProperties@8
+CertEnumCertificatesInStore@8
+CertEnumPhysicalStore@16
+CertEnumSubjectInSortedCTL@16
+CertEnumSystemStore@16
+CertEnumSystemStoreLocation@12
+CertFindAttribute@12
+CertFindCRLInStore@24
+CertFindCTLInStore@24
+CertFindCertificateInCRL@20
+CertFindCertificateInStore@24
+CertFindChainInStore@24
+CertFindExtension@12
+CertFindRDNAttr@8
+CertFindSubjectInCTL@20
+CertFindSubjectInSortedCTL@20
+CertFreeCRLContext@4
+CertFreeCTLContext@4
+CertFreeCertificateChain@4
+CertFreeCertificateChainEngine@4
+CertFreeCertificateChainList@4
+CertFreeCertificateContext@4
+CertFreeServerOcspResponseContext@4
+CertGetCRLContextProperty@16
+CertGetCRLFromStore@16
+CertGetCTLContextProperty@16
+CertGetCertificateChain@32
+CertGetCertificateContextProperty@16
+CertGetEnhancedKeyUsage@16
+CertGetIntendedKeyUsage@16
+CertGetIssuerCertificateFromStore@16
+CertGetNameStringA@24
+CertGetNameStringW@24
+CertGetPublicKeyLength@8
+CertGetServerOcspResponseContext@12
+CertGetStoreProperty@16
+CertGetSubjectCertificateFromStore@12
+CertGetValidUsages@20
+CertIsRDNAttrsInCertificateName@16
+CertIsStrongHashToSign@12
+CertIsValidCRLForCertificate@16
+CertIsWeakHash@24
+CertNameToStrA@20
+CertNameToStrW@20
+CertOIDToAlgId@4
+CertOpenServerOcspResponse@12
+CertOpenStore@20
+CertOpenSystemStoreA@8
+CertOpenSystemStoreW@8
+CertRDNValueToStrA@16
+CertRDNValueToStrW@16
+CertRegisterPhysicalStore@20
+CertRegisterSystemStore@16
+CertRemoveEnhancedKeyUsageIdentifier@8
+CertRemoveStoreFromCollection@8
+CertResyncCertificateChainEngine@4
+CertRetrieveLogoOrBiometricInfo@36
+CertSaveStore@24
+CertSelectCertificateChains@32
+CertSerializeCRLStoreElement@16
+CertSerializeCTLStoreElement@16
+CertSerializeCertificateStoreElement@16
+CertSetCRLContextProperty@16
+CertSetCTLContextProperty@16
+CertSetCertificateContextPropertiesFromCTLEntry@12
+CertSetCertificateContextProperty@16
+CertSetEnhancedKeyUsage@8
+CertSetStoreProperty@16
+CertStrToNameA@28
+CertStrToNameW@28
+CertUnregisterPhysicalStore@12
+CertUnregisterSystemStore@8
+CertVerifyCRLRevocation@16
+CertVerifyCRLTimeValidity@8
+CertVerifyCTLUsage@28
+CertVerifyCertificateChainPolicy@16
+CertVerifyRevocation@28
+CertVerifySubjectCertificateContext@12
+CertVerifyTimeValidity@8
+CertVerifyValidityNesting@8
+CreateFileU@28
+CryptAcquireCertificatePrivateKey@24
+CryptBinaryToStringA@20
+CryptBinaryToStringW@20
+CryptCloseAsyncHandle@4
+CryptCreateAsyncHandle@8
+CryptCreateKeyIdentifierFromCSP@32
+CryptDecodeMessage@52
+CryptDecodeObject@28
+CryptDecodeObjectEx@32
+CryptDecryptAndVerifyMessageSignature@36
+CryptDecryptMessage@24
+CryptEncodeObject@20
+CryptEncodeObjectEx@28
+CryptEncryptMessage@28
+CryptEnumKeyIdentifierProperties@28
+CryptEnumOIDFunction@24
+CryptEnumOIDInfo@16
+CryptExportPKCS8@28
+CryptExportPublicKeyInfo@20
+CryptExportPublicKeyInfoEx@32
+CryptExportPublicKeyInfoFromBCryptKeyHandle@28
+CryptFindCertificateKeyProvInfo@12
+CryptFindLocalizedName@4
+CryptFindOIDInfo@12
+CryptFormatObject@36
+CryptFreeOIDFunctionAddress@8
+CryptGetAsyncParam@16
+CryptGetDefaultOIDDllList@16
+CryptGetDefaultOIDFunctionAddress@24
+CryptGetKeyIdentifierProperty@28
+CryptGetMessageCertificates@20
+CryptGetMessageSignerCount@12
+CryptGetOIDFunctionAddress@24
+CryptGetOIDFunctionValue@28
+CryptHashCertificate2@28
+CryptHashCertificate@28
+CryptHashMessage@36
+CryptHashPublicKeyInfo@28
+CryptHashToBeSigned@24
+CryptImportPKCS8@36
+CryptImportPublicKeyInfo@16
+CryptImportPublicKeyInfoEx2@20
+CryptImportPublicKeyInfoEx@28
+CryptInitOIDFunctionSet@8
+CryptInstallDefaultContext@24
+CryptInstallOIDFunctionAddress@24
+CryptLoadSip@12
+CryptMemAlloc@4
+CryptMemFree@4
+CryptMemRealloc@8
+CryptMsgCalculateEncodedLength@24
+CryptMsgClose@4
+CryptMsgControl@16
+CryptMsgCountersign@16
+CryptMsgCountersignEncoded@28
+CryptMsgDuplicate@4
+CryptMsgEncodeAndSignCTL@24
+CryptMsgGetAndVerifySigner@24
+CryptMsgGetParam@20
+CryptMsgOpenToDecode@24
+CryptMsgOpenToEncode@24
+CryptMsgSignCTL@28
+CryptMsgUpdate@16
+CryptMsgVerifyCountersignatureEncoded@28
+CryptMsgVerifyCountersignatureEncodedEx@40
+CryptProtectData@28
+CryptProtectMemory@12
+CryptQueryObject@44
+CryptRegisterDefaultOIDFunction@16
+CryptRegisterOIDFunction@20
+CryptRegisterOIDInfo@8
+CryptRetrieveTimeStamp@40
+CryptSIPAddProvider@4
+CryptSIPCreateIndirectData@12
+CryptSIPGetCaps@8
+CryptSIPGetSealedDigest@20
+CryptSIPGetSignedDataMsg@20
+CryptSIPLoad@12
+CryptSIPPutSignedDataMsg@20
+CryptSIPRemoveProvider@4
+CryptSIPRemoveSignedDataMsg@8
+CryptSIPRetrieveSubjectGuid@12
+CryptSIPRetrieveSubjectGuidForCatalogFile@12
+CryptSIPVerifyIndirectData@8
+CryptSetAsyncParam@16
+CryptSetKeyIdentifierProperty@24
+CryptSetOIDFunctionValue@28
+CryptSignAndEncodeCertificate@36
+CryptSignAndEncryptMessage@32
+CryptSignCertificate@36
+CryptSignMessage@28
+CryptSignMessageWithKey@20
+CryptStringToBinaryA@28
+CryptStringToBinaryW@28
+CryptUninstallDefaultContext@12
+CryptUnprotectData@28
+CryptUnprotectMemory@12
+CryptUnregisterDefaultOIDFunction@12
+CryptUnregisterOIDFunction@12
+CryptUnregisterOIDInfo@4
+CryptUpdateProtectedState@20
+CryptVerifyCertificateSignature@20
+CryptVerifyCertificateSignatureEx@32
+CryptVerifyDetachedMessageHash@32
+CryptVerifyDetachedMessageSignature@32
+CryptVerifyMessageHash@28
+CryptVerifyMessageSignature@28
+CryptVerifyMessageSignatureWithKey@24
+CryptVerifyTimeStampSignature@32
+I_CertChainEngineIsDisallowedCertificate@8
+I_CertDiagControl@12
+I_CertFinishSslHandshake@16
+I_CertProcessSslHandshake@24
+I_CertProtectFunction@28
+I_CertSrvProtectFunction@40
+I_CertSyncStore@8
+I_CertUpdateStore@16
+I_CryptAddRefLruEntry@4
+I_CryptAddSmartCardCertToStore@20
+I_CryptAllocTls@0
+I_CryptAllocTlsEx@4
+I_CryptCreateLruCache@8
+I_CryptCreateLruEntry@16
+I_CryptDetachTls@4
+I_CryptDisableLruOfEntries@4
+I_CryptEnableLruOfEntries@8
+I_CryptEnumMatchingLruEntries@4
+I_CryptFindLruEntry@8
+I_CryptFindLruEntryData@12
+I_CryptFindSmartCardCertInStore@16
+I_CryptFlushLruCache@12
+I_CryptFreeLruCache@12
+I_CryptFreeTls@8
+I_CryptGetAsn1Decoder@4
+I_CryptGetAsn1Encoder@4
+I_CryptGetDefaultCryptProv@4
+I_CryptGetDefaultCryptProvForEncrypt@12
+I_CryptGetFileVersion@12
+I_CryptGetLruEntryData@4
+I_CryptGetLruEntryIdentifier@4
+I_CryptGetOssGlobal@4
+I_CryptGetTls@4
+I_CryptInsertLruEntry@8
+I_CryptInstallAsn1Module@12
+I_CryptInstallOssGlobal@12
+I_CryptReadTrustedPublisherDWORDValueFromRegistry@8
+I_CryptRegisterSmartCardStore@20
+I_CryptReleaseLruEntry@4
+I_CryptRemoveLruEntry@12
+I_CryptSetTls@8
+I_CryptTouchLruEntry@8
+I_CryptUninstallAsn1Module@4
+I_CryptUninstallOssGlobal@4
+I_CryptUnregisterSmartCardStore@4
+I_CryptWalkAllLruCacheEntries@12
+PFXExportCertStore2@16
+PFXExportCertStore@16
+PFXExportCertStoreEx@20
+PFXImportCertStore@12
+PFXIsPFXBlob@4
+PFXVerifyPassword@12
+RegCreateHKCUKeyExU@36
+RegOpenHKCUKeyExU@20
diff --git a/lib/libc/mingw/lib32/cryptnet.def b/lib/libc/mingw/lib32/cryptnet.def
@@ -0,0 +1,26 @@
+;
+; Definition file of CRYPTNET.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "CRYPTNET.dll"
+EXPORTS
+CertDllVerifyCTLUsage@28
+CertDllVerifyRevocation@28
+LdapProvOpenStore@28
+CryptCancelAsyncRetrieval@4
+CryptFlushTimeValidObject@20
+CryptGetObjectUrl@32
+CryptGetTimeValidObject@36
+CryptInstallCancelRetrieval@16
+CryptRetrieveObjectByUrlA@36
+CryptRetrieveObjectByUrlW@36
+CryptUninstallCancelRetrieval@8
+DllRegisterServer
+DllUnregisterServer
+I_CryptNetEnumUrlCacheEntry@16
+I_CryptNetGetHostNameFromUrl@12
+I_CryptNetGetUserDsStoreUrl@8
+I_CryptNetIsConnected
+I_CryptNetSetUrlCacheFlushInfo@20
+I_CryptNetSetUrlCachePreFetchInfo@20
diff --git a/lib/libc/mingw/lib32/gdi32.def b/lib/libc/mingw/lib32/gdi32.def
@@ -0,0 +1,376 @@
+LIBRARY GDI32.dll
+EXPORTS
+AbortDoc@4
+AbortPath@4
+AddFontMemResourceEx@16
+AddFontResourceA@4
+AddFontResourceW@4
+AddFontResourceExA@12
+AddFontResourceExW@12
+AngleArc@24
+AnimatePalette@16
+Arc@36
+ArcTo@36
+BeginPath@4
+BitBlt@36
+CancelDC@4
+CheckColorsInGamut@16
+ChoosePixelFormat@8
+Chord@36
+CloseEnhMetaFile@4
+CloseFigure@4
+CloseMetaFile@4
+ColorCorrectPalette@16
+ColorMatchToTarget@12
+CombineRgn@16
+CombineTransform@12
+CopyEnhMetaFileA@8
+CopyEnhMetaFileW@8
+CopyMetaFileA@8
+CopyMetaFileW@8
+CreateBitmap@20
+CreateBitmapIndirect@4
+CreateBrushIndirect@4
+CreateColorSpaceA@4
+CreateColorSpaceW@4
+CreateCompatibleBitmap@12
+CreateCompatibleDC@4
+CreateDCA@16
+CreateDCW@16
+CreateDIBPatternBrush@8
+CreateDIBPatternBrushPt@8
+CreateDIBSection@24
+CreateDIBitmap@24
+CreateDiscardableBitmap@12
+CreateEllipticRgn@16
+CreateEllipticRgnIndirect@4
+CreateEnhMetaFileA@16
+CreateEnhMetaFileW@16
+CreateFontA@56
+CreateFontIndirectA@4
+CreateFontIndirectExA@4
+CreateFontIndirectExW@4
+CreateFontIndirectW@4
+CreateFontW@56
+CreateHalftonePalette@4
+CreateHatchBrush@8
+CreateICA@16
+CreateICW@16
+CreateMetaFileA@4
+CreateMetaFileW@4
+CreatePalette@4
+CreatePatternBrush@4
+CreatePen@12
+CreatePenIndirect@4
+CreatePolyPolygonRgn@16
+CreatePolygonRgn@12
+CreateRectRgn@16
+CreateRectRgnIndirect@4
+CreateRoundRectRgn@24
+CreateScalableFontResourceA@16
+CreateScalableFontResourceW@16
+CreateSolidBrush@4
+DPtoLP@12
+DeleteColorSpace@4
+DeleteDC@4
+DeleteEnhMetaFile@4
+DeleteMetaFile@4
+DeleteObject@4
+DescribePixelFormat@16
+DeviceCapabilitiesEx@24
+DeviceCapabilitiesExA@24
+DeviceCapabilitiesExW@24
+DrawEscape@16
+Ellipse@20
+EnableEUDC@4
+EndDoc@4
+EndPage@4
+EndPath@4
+EnumEnhMetaFile@20
+EnumFontFamiliesA@16
+EnumFontFamiliesExA@20
+EnumFontFamiliesExW@20
+EnumFontFamiliesW@16
+EnumFontsA@16
+EnumFontsW@16
+EnumICMProfilesA@12
+EnumICMProfilesW@12
+EnumMetaFile@16
+EnumObjects@16
+EqualRgn@8
+Escape@20
+ExcludeClipRect@20
+ExtCreatePen@20
+ExtCreateRegion@12
+ExtEscape@24
+ExtFloodFill@20
+ExtSelectClipRgn@12
+ExtTextOutA@32
+ExtTextOutW@32
+FillPath@4
+FillRgn@12
+FixBrushOrgEx@16
+FlattenPath@4
+FloodFill@16
+FontIsLinked@4
+FrameRgn@20
+GdiAlphaBlend@44
+GdiComment@12
+GdiConvertToDevmodeW@4
+GdiEntry13@0 ; alias for DdQueryDisplaySettingsUniqueness
+GdiFlush@0
+GdiGetBatchLimit@0
+GdiGetCharDimensions@12
+GdiGetCodePage@4
+GdiGetSpoolMessage@16
+GdiGradientFill@24
+GdiInitSpool@0
+GdiInitializeLanguagePack@4
+GdiIsMetaFileDC@4
+GdiIsMetaPrintDC@4
+GdiIsPlayMetafileDC@4
+GdiPlayDCScript@24
+GdiPlayJournal@20
+GdiPlayScript@28
+GdiRealizationInfo@8
+GdiSetBatchLimit@4
+GdiTransparentBlt@44
+GetArcDirection@4
+GetAspectRatioFilterEx@8
+GetBitmapBits@12
+GetBitmapDimensionEx@8
+GetBkColor@4
+GetBkMode@4
+GetBoundsRect@12
+GetBrushOrgEx@8
+GetCharABCWidthsA@16
+GetCharABCWidthsFloatA@16
+GetCharABCWidthsFloatW@16
+GetCharABCWidthsI@20
+GetCharABCWidthsW@16
+GetCharWidth32A@16
+GetCharWidth32W@16
+GetCharWidthA@16
+GetCharWidthFloatA@16
+GetCharWidthFloatW@16
+GetCharWidthI@20
+GetCharWidthW@16
+GetCharacterPlacementA@24
+GetCharacterPlacementW@24
+GetClipBox@8
+GetClipRgn@8
+GetColorAdjustment@8
+GetColorSpace@4
+GetCurrentObject@8
+GetCurrentPositionEx@8
+GetDCBrushColor@4
+GetDCOrgEx@8
+GetDCPenColor@4
+GetDIBColorTable@16
+GetDIBits@28
+GetDeviceCaps@8
+GetDeviceGammaRamp@8
+GetEnhMetaFileA@4
+GetEnhMetaFileBits@12
+GetEnhMetaFileDescriptionA@12
+GetEnhMetaFileDescriptionW@12
+GetEnhMetaFileHeader@12
+GetEnhMetaFilePaletteEntries@12
+GetEnhMetaFilePixelFormat@12
+GetEnhMetaFileW@4
+GetFontData@20
+GetFontLanguageInfo@4
+GetFontResourceInfo@16
+GetFontResourceInfoW@16
+GetFontUnicodeRanges@8
+GetGlyphIndicesA@20
+GetGlyphIndicesW@20
+GetGlyphOutline@28
+GetGlyphOutlineA@28
+GetGlyphOutlineW@28
+GetGlyphOutlineWow@28
+GetGraphicsMode@4
+GetICMProfileA@12
+GetICMProfileW@12
+GetKerningPairs@12
+GetKerningPairsA@12
+GetKerningPairsW@12
+GetLayout@4
+GetLogColorSpaceA@12
+GetLogColorSpaceW@12
+GetMapMode@4
+GetMetaFileA@4
+GetMetaFileBitsEx@12
+GetMetaFileW@4
+GetMetaRgn@8
+GetMiterLimit@8
+GetNearestColor@8
+GetNearestPaletteIndex@8
+GetObjectA@12
+GetObjectType@4
+GetObjectW@12
+GetOutlineTextMetricsA@12
+GetOutlineTextMetricsW@12
+GetPaletteEntries@16
+GetPath@16
+GetPixel@12
+GetPixelFormat@4
+GetPolyFillMode@4
+GetROP2@4
+GetRandomRgn@12
+GetRasterizerCaps@8
+GetRegionData@12
+GetRelAbs@8
+GetRgnBox@8
+GetStockObject@4
+GetStretchBltMode@4
+GetSystemPaletteEntries@16
+GetSystemPaletteUse@4
+GetTextAlign@4
+GetTextCharacterExtra@4
+GetTextCharset@4
+GetTextCharsetInfo@12
+GetTextColor@4
+GetTextExtentExPointA@28
+GetTextExtentExPointW@28
+GetTextExtentExPointI@28
+GetTextExtentPoint32A@16
+GetTextExtentPoint32W@16
+GetTextExtentPointA@16
+GetTextExtentPointI@16
+GetTextExtentPointW@16
+GetTextFaceA@12
+GetTextFaceW@12
+GetTextMetricsA@8
+GetTextMetricsW@8
+GetTransform@12
+GetViewportExtEx@8
+GetViewportOrgEx@8
+GetWinMetaFileBits@20
+GetWindowExtEx@8
+GetWindowOrgEx@8
+GetWorldTransform@8
+IntersectClipRect@20
+InvertRgn@8
+LPtoDP@12
+LineDDA@24
+LineTo@12
+MaskBlt@48
+ModifyWorldTransform@12
+MoveToEx@16
+NamedEscape@28
+OffsetClipRgn@12
+OffsetRgn@12
+OffsetViewportOrgEx@16
+OffsetWindowOrgEx@16
+PaintRgn@8
+PatBlt@24
+PathToRegion@4
+Pie@36
+PlayEnhMetaFile@12
+PlayEnhMetaFileRecord@16
+PlayMetaFile@8
+PlayMetaFileRecord@16
+PlgBlt@40
+PolyBezier@12
+PolyBezierTo@12
+PolyDraw@16
+PolyPolygon@16
+PolyPolyline@16
+PolyTextOutA@12
+PolyTextOutW@12
+Polygon@12
+Polyline@12
+PolylineTo@12
+PtInRegion@12
+PtVisible@12
+RealizePalette@4
+RectInRegion@8
+RectVisible@8
+Rectangle@20
+RemoveFontMemResourceEx@4
+RemoveFontResourceA@4
+RemoveFontResourceW@4
+RemoveFontResourceExA@12
+RemoveFontResourceExW@12
+ResetDCA@8
+ResetDCW@8
+ResizePalette@8
+RestoreDC@8
+RoundRect@28
+SaveDC@4
+ScaleViewportExtEx@24
+ScaleWindowExtEx@24
+SelectBrushLocal@8
+SelectClipPath@8
+SelectClipRgn@8
+SelectFontLocal@8
+SelectObject@8
+SelectPalette@12
+SetAbortProc@8
+SetArcDirection@8
+SetBitmapBits@12
+SetBitmapDimensionEx@16
+SetBkColor@8
+SetBkMode@8
+SetBoundsRect@12
+SetBrushOrgEx@16
+SetColorAdjustment@8
+SetColorSpace@8
+SetDCBrushColor@8
+SetDCPenColor@8
+SetDIBColorTable@16
+SetDIBits@28
+SetDIBitsToDevice@48
+SetDeviceGammaRamp@8
+SetEnhMetaFileBits@8
+SetFontEnumeration@4
+SetGraphicsMode@8
+SetICMMode@8
+SetICMProfileA@8
+SetICMProfileW@8
+SetLayout@8
+SetMagicColors@12
+SetMapMode@8
+SetMapperFlags@8
+SetMetaFileBitsEx@8
+SetMetaRgn@4
+SetMiterLimit@12
+SetPaletteEntries@16
+SetPixel@16
+SetPixelFormat@12
+SetPixelV@16
+SetPolyFillMode@8
+SetROP2@8
+SetRectRgn@20
+SetRelAbs@8
+SetStretchBltMode@8
+SetSystemPaletteUse@8
+SetTextAlign@8
+SetTextCharacterExtra@8
+SetTextColor@8
+SetTextJustification@12
+SetViewportExtEx@16
+SetViewportOrgEx@16
+SetVirtualResolution@20
+SetWinMetaFileBits@16
+SetWindowExtEx@16
+SetWindowOrgEx@16
+SetWorldTransform@8
+StartDocA@8
+StartDocW@8
+StartPage@4
+StretchBlt@44
+StretchDIBits@52
+StrokeAndFillPath@4
+StrokePath@4
+SwapBuffers@4
+TextOutA@20
+TextOutW@20
+TranslateCharsetInfo@12
+UnrealizeObject@4
+UpdateColors@4
+UpdateICMRegKeyA@16
+UpdateICMRegKeyW@16
+WidenPath@4
+gdiPlaySpoolStream@24
diff --git a/lib/libc/mingw/lib32/imm32.def b/lib/libc/mingw/lib32/imm32.def
@@ -0,0 +1,136 @@
+LIBRARY IMM32.DLL
+EXPORTS
+CtfImmAppCompatEnableIMEonProtectedCode
+CtfImmCoUninitialize
+CtfImmDispatchDefImeMessage@16
+CtfImmEnterCoInitCountSkipMode
+CtfImmGenerateMessage@8
+CtfImmGetCompatibleKeyboardLayout@4
+CtfImmGetGuidAtom@12
+CtfImmGetIMEFileName@8
+CtfImmGetTMAEFlags
+CtfImmHideToolbarWnd
+CtfImmIsCiceroEnabled
+CtfImmIsCiceroStartedInThread
+CtfImmIsGuidMapEnable@4
+CtfImmIsTextFrameServiceDisabled
+CtfImmLastEnabledWndDestroy@4
+CtfImmLeaveCoInitCountSkipMode
+CtfImmNotify@12
+CtfImmRestoreToolbarWnd@4
+CtfImmSetAppCompatFlags@4
+CtfImmSetCiceroStartInThread@4
+CtfImmSetDefaultRemoteKeyboardLayout@8
+CtfImmTIMActivate@8
+GetKeyboardLayoutCP@4
+ImmActivateLayout@4
+ImmAssociateContext@8
+ImmAssociateContextEx@12
+ImmCallImeConsoleIME@20
+ImmConfigureIMEA@16
+ImmConfigureIMEW@16
+ImmCreateContext@0
+ImmCreateIMCC@4
+ImmCreateSoftKeyboard@16
+ImmDestroyContext@4
+ImmDestroyIMCC@4
+ImmDestroySoftKeyboard@4
+ImmDisableIME@4
+ImmDisableIme@4
+ImmDisableTextFrameService@4
+ImmEnumInputContext@12
+ImmEnumRegisterWordA@24
+ImmEnumRegisterWordW@24
+ImmEscapeA@16
+ImmEscapeW@16
+ImmFreeLayout@4
+ImmGenerateMessage@4
+ImmGetAppCompatFlags@4
+ImmGetCandidateListA@16
+ImmGetCandidateListCountA@8
+ImmGetCandidateListCountW@8
+ImmGetCandidateListW@16
+ImmGetCandidateWindow@12
+ImmGetCompositionFontA@8
+ImmGetCompositionFontW@8
+ImmGetCompositionStringA@16
+ImmGetCompositionStringW@16
+ImmGetCompositionWindow@8
+ImmGetContext@4
+ImmGetConversionListA@24
+ImmGetConversionListW@24
+ImmGetConversionStatus@12
+ImmGetDefaultIMEWnd@4
+ImmGetDescriptionA@12
+ImmGetDescriptionW@12
+ImmGetGuideLineA@16
+ImmGetGuideLineW@16
+ImmGetHotKey@16
+ImmGetIMCCLockCount@4
+ImmGetIMCCSize@4
+ImmGetIMCLockCount@4
+ImmGetIMEFileNameA@12
+ImmGetIMEFileNameW@12
+ImmGetImeInfoEx@12
+ImmGetImeMenuItemsA@24
+ImmGetImeMenuItemsW@24
+ImmGetOpenStatus@4
+ImmGetProperty@8
+ImmGetRegisterWordStyleA@12
+ImmGetRegisterWordStyleW@12
+ImmGetStatusWindowPos@8
+ImmGetVirtualKey@4
+ImmIMPGetIMEA@8
+ImmIMPGetIMEW@8
+ImmIMPQueryIMEA@4
+ImmIMPQueryIMEW@4
+ImmIMPSetIMEA@8
+ImmIMPSetIMEW@8
+ImmInstallIMEA@8
+ImmInstallIMEW@8
+ImmIsIME@4
+ImmIsUIMessageA@16
+ImmIsUIMessageW@16
+ImmLoadIME@4
+ImmLoadLayout@8
+ImmLockClientImc@4
+ImmLockIMC@4
+ImmLockIMCC@4
+ImmLockImeDpi@4
+ImmNotifyIME@16
+ImmProcessKey@20
+ImmPutImeMenuItemsIntoMappedFile@4
+ImmReSizeIMCC@8
+ImmRegisterClient@8
+ImmRegisterWordA@16
+ImmRegisterWordW@16
+ImmReleaseContext@8
+ImmRequestMessageA@12
+ImmRequestMessageW@12
+ImmSendIMEMessageExA@8
+ImmSendIMEMessageExW@8
+ImmSetActiveContext@12
+ImmSetActiveContextConsoleIME@8
+ImmSetCandidateWindow@8
+ImmSetCompositionFontA@8
+ImmSetCompositionFontW@8
+ImmSetCompositionStringA@24
+ImmSetCompositionStringW@24
+ImmSetCompositionWindow@8
+ImmSetConversionStatus@12
+ImmSetHotKey@16
+ImmSetOpenStatus@8
+ImmSetStatusWindowPos@8
+ImmShowSoftKeyboard@8
+ImmSimulateHotKey@8
+ImmSystemHandler@12
+ImmTranslateMessage@16
+ImmUnlockClientImc@4
+ImmUnlockIMC@4
+ImmUnlockIMCC@4
+ImmUnlockImeDpi@4
+ImmUnregisterWordA@16
+ImmUnregisterWordW@16
+ImmWINNLSEnableIME@8
+ImmWINNLSGetEnableStatus@4
+ImmWINNLSGetIMEHotkey@4
diff --git a/lib/libc/mingw/lib32/kernel32.def b/lib/libc/mingw/lib32/kernel32.def
@@ -0,0 +1,1660 @@
+;
+; Definition file of KERNEL32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "KERNEL32.dll"
+EXPORTS
+BaseThreadInitThunk@4
+InterlockedPushListSList@8
+AcquireSRWLockExclusive@4
+AcquireSRWLockShared@4
+ActivateActCtx@8
+ActivateActCtxWorker@8
+AddAtomA@4
+AddAtomW@4
+AddConsoleAliasA@12
+AddConsoleAliasW@12
+AddDllDirectory@4
+AddIntegrityLabelToBoundaryDescriptor@8
+AddLocalAlternateComputerNameA@8
+AddLocalAlternateComputerNameW@8
+AddRefActCtx@4
+AddRefActCtxWorker@4
+AddResourceAttributeAce@28
+AddSIDToBoundaryDescriptor@8
+AddScopedPolicyIDAce@20
+AddSecureMemoryCacheCallback@4
+AddVectoredContinueHandler@8
+AddVectoredExceptionHandler@8
+AdjustCalendarDate@12
+AllocConsole@0
+AllocateUserPhysicalPages@12
+AllocateUserPhysicalPagesNuma@16
+AppPolicyGetClrCompat@8
+AppPolicyGetCreateFileAccess@8
+AAppPolicyGetLifecycleManagement@8
+AppPolicyGetMediaFoundationCodecLoading@8
+AppPolicyGetProcessTerminationMethod@8
+AppPolicyGetShowDeveloperDiagnostic@8
+AppPolicyGetThreadInitializationType@8
+AppPolicyGetWindowingModel@8
+AppXGetOSMaxVersionTested@8
+ApplicationRecoveryFinished@4
+ApplicationRecoveryInProgress@4
+AreFileApisANSI@0
+AssignProcessToJobObject@8
+AttachConsole@4
+BackupRead@28
+BackupSeek@24
+BackupWrite@28
+BaseAttachCompleteThunk@0
+BaseCheckAppcompatCache@16
+BaseCheckAppcompatCacheEx@24
+BaseCheckAppcompatCacheExWorker@36
+BaseCheckAppcompatCacheWorker@16
+BaseCheckElevation@48
+BaseCheckRunApp@52
+BaseCleanupAppcompatCacheSupport@4
+BaseDllReadWriteIniFile@32
+BaseDumpAppcompatCache@0
+BaseDumpAppcompatCacheWorker@0
+BaseElevationPostProcessing@12
+BaseFlushAppcompatCache@0
+BaseFlushAppcompatCacheWorker@0
+BaseFormatObjectAttributes@16
+BaseFormatTimeOut@8
+BaseFreeAppCompatDataForProcessWorker@4
+BaseGenerateAppCompatData@24
+BaseGetNamedObjectDirectory@4
+BaseInitAppcompatCacheSupport@0
+BaseInitAppcompatCacheSupportWorker@0
+BaseIsAppcompatInfrastructureDisabled@0
+BaseIsAppcompatInfrastructureDisabledWorker@0
+BaseIsDosApplication@8
+BaseQueryModuleData@28
+BaseReadAppCompatDataForProcessWorker@12
+BaseSetLastNTError@4
+BaseUpdateAppcompatCache@12
+BaseUpdateAppcompatCacheWorker@12
+BaseUpdateVDMEntry@16
+BaseVerifyUnicodeString@4
+BaseWriteErrorElevationRequiredEvent@0
+Basep8BitStringToDynamicUnicodeString@8
+BasepAllocateActivationContextActivationBlock@16
+BasepAnsiStringToDynamicUnicodeString@8
+BasepAppContainerEnvironmentExtension@12
+BasepAppXExtension@24
+BasepCheckAppCompat@16
+BasepCheckBadapp@56
+BasepCheckWebBladeHashes@4
+BasepCheckWinSaferRestrictions@28
+BasepConstructSxsCreateProcessMessage@80
+BasepCopyEncryption@12
+BasepFreeActivationContextActivationBlock@4
+BasepFreeAppCompatData@12
+BasepGetAppCompatData@60
+BasepGetComputerNameFromNtPath@16
+BasepGetExeArchType@12
+BasepInitAppCompatData@12
+BasepIsProcessAllowed@4
+BasepMapModuleHandle@8
+BasepNotifyLoadStringResource@16
+BasepPostSuccessAppXExtension@8
+BasepProcessInvalidImage@84
+BasepQueryAppCompat@72
+BasepQueryModuleChpeSettings@40
+BasepReleaseAppXContext@4
+BasepReleaseSxsCreateProcessUtilityStruct@4
+BasepReportFault@8
+BasepSetFileEncryptionCompression@32
+Beep@8
+BeginUpdateResourceA@8
+BeginUpdateResourceW@8
+BindIoCompletionCallback@12
+BuildCommDCBA@8
+BuildCommDCBAndTimeoutsA@12
+BuildCommDCBAndTimeoutsW@12
+BuildCommDCBW@8
+CallNamedPipeA@28
+CallNamedPipeW@28
+CallbackMayRunLong@4
+CancelDeviceWakeupRequest@4
+CancelIo@4
+CancelIoEx@8
+CancelSynchronousIo@4
+CancelThreadpoolIo@4
+CancelTimerQueueTimer@8
+CancelWaitableTimer@4
+CeipIsOptedIn@0
+ChangeTimerQueueTimer@16
+CheckAllowDecryptedRemoteDestinationPolicy@0
+CheckElevation@20
+CheckElevationEnabled@4
+CheckForReadOnlyResource@8
+CheckForReadOnlyResourceFilter@4
+CheckNameLegalDOS8Dot3A@20
+CheckNameLegalDOS8Dot3W@20
+CheckRemoteDebuggerPresent@8
+CheckTokenCapability@12
+CheckTokenMembershipEx@16
+ClearCommBreak@4
+ClearCommError@12
+CloseConsoleHandle@4
+CloseHandle@4
+ClosePackageInfo@4
+ClosePrivateNamespace@8
+CloseProfileUserMapping@0
+ClosePseudoConsole@4
+CloseState@4
+CloseThreadpool@4
+CloseThreadpoolCleanupGroup@4
+CloseThreadpoolCleanupGroupMembers@12
+CloseThreadpoolIo@4
+CloseThreadpoolTimer@4
+CloseThreadpoolWait@4
+CloseThreadpoolWork@4
+CmdBatNotification@4
+CommConfigDialogA@12
+CommConfigDialogW@12
+CompareCalendarDates@12
+CompareFileTime@8
+CompareStringA@24
+CompareStringEx@36
+CompareStringOrdinal@20
+CompareStringW@24
+ConnectNamedPipe@8
+ConsoleIMERoutine@4
+ConsoleMenuControl@12
+ContinueDebugEvent@12
+ConvertCalDateTimeToSystemTime@8
+ConvertDefaultLocale@4
+ConvertFiberToThread@0
+ConvertNLSDayOfWeekToWin32DayOfWeek@4
+ConvertSystemTimeToCalDateTime@12
+ConvertThreadToFiber@4
+ConvertThreadToFiberEx@8
+ConvertToGlobalHandle@4
+CopyContext@12
+CopyFile2@12
+CopyFileA@12
+CopyFileExA@24
+CopyFileExW@24
+CopyFileTransactedA@28
+CopyFileTransactedW@28
+CopyFileW@12
+CopyLZFile@8
+CreateActCtxA@4
+CreateActCtxW@4
+CreateActCtxWWorker@4
+CreateBoundaryDescriptorA@8
+CreateBoundaryDescriptorW@8
+CreateConsoleScreenBuffer@20
+CreateDirectoryA@8
+CreateDirectoryExA@12
+CreateDirectoryExW@12
+CreateDirectoryTransactedA@16
+CreateDirectoryTransactedW@16
+CreateDirectoryW@8
+CreateEnclave@32
+CreateEventA@16
+CreateEventExA@16
+CreateEventExW@16
+CreateEventW@16
+CreateFiber@12
+CreateFiberEx@20
+CreateFile2@20
+CreateFileA@28
+CreateFileMappingA@24
+CreateFileMappingFromApp@24
+CreateFileMappingNumaA@28
+CreateFileMappingNumaW@28
+CreateFileMappingW@24
+CreateFileTransactedA@40
+CreateFileTransactedW@40
+CreateFileW@28
+CreateHardLinkA@12
+CreateHardLinkTransactedA@16
+CreateHardLinkTransactedW@16
+CreateHardLinkW@12
+CreateIoCompletionPort@16
+CreateJobObjectA@8
+CreateJobObjectW@8
+CreateJobSet@12
+CreateMailslotA@16
+CreateMailslotW@16
+CreateMemoryResourceNotification@4
+CreateMutexA@12
+CreateMutexExA@16
+CreateMutexExW@16
+CreateMutexW@12
+CreateNamedPipeA@32
+CreateNamedPipeW@32
+CreatePipe@16
+CreatePrivateNamespaceA@12
+CreatePrivateNamespaceW@12
+CreateProcessA@40
+CreateProcessAsUserA@44
+CreateProcessAsUserW@44
+CreateProcessInternalA@48
+CreateProcessInternalW@48
+CreateProcessW@40
+CreatePseudoConsole@20
+CreateRemoteThread@28
+CreateRemoteThreadEx@32
+CreateSemaphoreA@16
+CreateSemaphoreExA@24
+CreateSemaphoreExW@24
+CreateSemaphoreW@16
+CreateSocketHandle@0
+CreateSymbolicLinkA@12
+CreateSymbolicLinkTransactedA@16
+CreateSymbolicLinkTransactedW@16
+CreateSymbolicLinkW@12
+CreateTapePartition@16
+CreateThread@24
+CreateThreadpool@4
+CreateThreadpoolCleanupGroup@0
+CreateThreadpoolIo@16
+CreateThreadpoolTimer@12
+CreateThreadpoolWait@12
+CreateThreadpoolWork@12
+CreateTimerQueue@0
+CreateTimerQueueTimer@28
+CreateToolhelp32Snapshot@8
+CreateVirtualBuffer@12
+CreateWaitableTimerA@12
+CreateWaitableTimerExA@16
+CreateWaitableTimerExW@16
+CreateWaitableTimerW@12
+CtrlRoutine@4
+DeactivateActCtx@8
+DeactivateActCtxWorker@8
+DebugActiveProcess@4
+DebugActiveProcessStop@4
+DebugBreak@0
+DebugBreakProcess@4
+DebugSetProcessKillOnExit@4
+DecodePointer@4
+DecodeSystemPointer@4
+DefineDosDeviceA@12
+DefineDosDeviceW@12
+DelayLoadFailureHook@8
+DeleteAtom@4
+DeleteBoundaryDescriptor@4
+DeleteCriticalSection@4
+DeleteFiber@4
+DeleteFileA@4
+DeleteFileTransactedA@8
+DeleteFileTransactedW@8
+DeleteFileW@4
+DeleteProcThreadAttributeList@4
+DeleteSynchronizationBarrier@4
+DeleteTimerQueue@4
+DeleteTimerQueueEx@8
+DeleteTimerQueueTimer@12
+DeleteVolumeMountPointA@4
+DeleteVolumeMountPointW@4
+DeviceIoControl@32
+DisableThreadLibraryCalls@4
+DisableThreadProfiling@4
+DisassociateCurrentThreadFromCallback@4
+DiscardVirtualMemory@8
+DisconnectNamedPipe@4
+DnsHostnameToComputerNameA@12
+DnsHostnameToComputerNameExW@12
+DnsHostnameToComputerNameW@12
+DosDateTimeToFileTime@12
+DosPathToSessionPathA@12
+DosPathToSessionPathW@12
+DuplicateConsoleHandle@16
+DuplicateEncryptionInfoFileExt@20
+DuplicateHandle@28
+EnableThreadProfiling@20
+EncodePointer@4
+EncodeSystemPointer@4
+EndUpdateResourceA@8
+EndUpdateResourceW@8
+EnterCriticalSection@4
+EnterSynchronizationBarrier@8
+EnumCalendarInfoA@16
+EnumCalendarInfoExA@16
+EnumCalendarInfoExEx@24
+EnumCalendarInfoExW@16
+EnumCalendarInfoW@16
+EnumDateFormatsA@12
+EnumDateFormatsExA@12
+EnumDateFormatsExEx@16
+EnumDateFormatsExW@12
+EnumDateFormatsW@12
+EnumLanguageGroupLocalesA@16
+EnumLanguageGroupLocalesW@16
+EnumResourceLanguagesA@20
+EnumResourceLanguagesExA@28
+EnumResourceLanguagesExW@28
+EnumResourceLanguagesW@20
+EnumResourceNamesA@16
+EnumResourceNamesExA@24
+EnumResourceNamesExW@24
+EnumResourceNamesW@16
+EnumResourceTypesA@12
+EnumResourceTypesExA@20
+EnumResourceTypesExW@20
+EnumResourceTypesW@12
+EnumSystemCodePagesA@8
+EnumSystemCodePagesW@8
+EnumSystemFirmwareTables@12
+EnumSystemGeoID@12
+EnumSystemGeoNames@12
+EnumSystemLanguageGroupsA@12
+EnumSystemLanguageGroupsW@12
+EnumSystemLocalesA@8
+EnumSystemLocalesEx@16
+EnumSystemLocalesW@8
+EnumTimeFormatsA@12
+EnumTimeFormatsEx@16
+EnumTimeFormatsW@12
+EnumUILanguagesA@12
+EnumUILanguagesW@12
+EnumerateLocalComputerNamesA@16
+EnumerateLocalComputerNamesW@16
+EraseTape@12
+EscapeCommFunction@8
+ExitProcess@4
+ExitThread@4
+ExitVDM@8
+ExpandEnvironmentStringsA@12
+ExpandEnvironmentStringsW@12
+ExpungeConsoleCommandHistoryA@4
+ExpungeConsoleCommandHistoryW@4
+ExtendVirtualBuffer@8
+FatalAppExitA@8
+FatalAppExitW@8
+FatalExit@4
+FileTimeToDosDateTime@12
+FileTimeToLocalFileTime@8
+FileTimeToSystemTime@8
+FillConsoleOutputAttribute@20
+FillConsoleOutputCharacterA@20
+FillConsoleOutputCharacterW@20
+FindActCtxSectionGuid@20
+FindActCtxSectionGuidWorker@20
+FindActCtxSectionStringA@20
+FindActCtxSectionStringW@20
+FindActCtxSectionStringWWorker@20
+FindAtomA@4
+FindAtomW@4
+FindClose@4
+FindCloseChangeNotification@4
+FindFirstChangeNotificationA@12
+FindFirstChangeNotificationW@12
+FindFirstFileA@8
+FindFirstFileExA@24
+FindFirstFileExW@24
+FindFirstFileNameTransactedW@20
+FindFirstFileNameW@16
+FindFirstFileTransactedA@28
+FindFirstFileTransactedW@28
+FindFirstFileW@8
+FindFirstStreamTransactedW@20
+FindFirstStreamW@16
+FindFirstVolumeA@8
+FindFirstVolumeMountPointA@12
+FindFirstVolumeMountPointW@12
+FindFirstVolumeW@8
+FindNLSString@28
+FindNLSStringEx@40
+FindNextChangeNotification@4
+FindNextFileA@8
+FindNextFileNameW@12
+FindNextFileW@8
+FindNextStreamW@8
+FindNextVolumeA@12
+FindNextVolumeMountPointA@12
+FindNextVolumeMountPointW@12
+FindNextVolumeW@12
+FindPackagesByPackageFamily@28
+FindResourceA@12
+FindResourceExA@16
+FindResourceExW@16
+FindResourceW@12
+FindStringOrdinal@24
+FindVolumeClose@4
+FindVolumeMountPointClose@4
+FlsAlloc@4
+FlsFree@4
+FlsGetValue@4
+FlsSetValue@8
+FlushConsoleInputBuffer@4
+FlushFileBuffers@4
+FlushInstructionCache@12
+FlushProcessWriteBuffers@0
+FlushViewOfFile@8
+FoldStringA@20
+FoldStringW@20
+FormatApplicationUserModelId@16
+FormatMessageA@28
+FormatMessageW@28
+FreeConsole@0
+FreeEnvironmentStringsA@4
+FreeEnvironmentStringsW@4
+FreeLibrary@4
+FreeLibraryAndExitThread@8
+FreeLibraryWhenCallbackReturns@8
+FreeMemoryJobObject@4
+FreeResource@4
+FreeUserPhysicalPages@12
+FreeVirtualBuffer@4
+GenerateConsoleCtrlEvent@8
+GetACP@0
+GetActiveProcessorCount@4
+GetActiveProcessorGroupCount@0
+GetAppContainerAce@16
+GetAppContainerNamedObjectPath@20
+GetApplicationRecoveryCallback@20
+GetApplicationRecoveryCallbackWorker@20
+GetApplicationRestartSettings@16
+GetApplicationRestartSettingsWorker@16
+GetApplicationUserModelId@12
+GetAtomNameA@12
+GetAtomNameW@12
+GetBinaryType@8
+GetBinaryTypeA@8
+GetBinaryTypeW@8
+GetCPFileNameFromRegistry@12
+GetCPInfo@8
+GetCPInfoExA@12
+GetCPInfoExW@12
+GetCachedSigningLevel@24
+GetCalendarDateFormat@24
+GetCalendarDateFormatEx@24
+GetCalendarDaysInMonth@16
+GetCalendarDifferenceInDays@12
+GetCalendarInfoA@24
+GetCalendarInfoEx@28
+GetCalendarInfoW@24
+GetCalendarMonthsInYear@12
+GetCalendarSupportedDateRange@12
+GetCalendarWeekNumber@16
+GetComPlusPackageInstallStatus@0
+GetCommConfig@12
+GetCommMask@8
+GetCommModemStatus@8
+GetCommProperties@8
+GetCommState@8
+GetCommTimeouts@8
+GetCommandLineA@0
+GetCommandLineW@0
+GetCompressedFileSizeA@8
+GetCompressedFileSizeTransactedA@12
+GetCompressedFileSizeTransactedW@12
+GetCompressedFileSizeW@8
+GetComputerNameA@8
+GetComputerNameExA@12
+GetComputerNameExW@12
+GetComputerNameW@8
+GetConsoleAliasA@16
+GetConsoleAliasExesA@8
+GetConsoleAliasExesLengthA@0
+GetConsoleAliasExesLengthW@0
+GetConsoleAliasExesW@8
+GetConsoleAliasW@16
+GetConsoleAliasesA@12
+GetConsoleAliasesLengthA@4
+GetConsoleAliasesLengthW@4
+GetConsoleAliasesW@12
+GetConsoleCP@0
+GetConsoleCharType@12
+GetConsoleCommandHistoryA@12
+GetConsoleCommandHistoryLengthA@4
+GetConsoleCommandHistoryLengthW@4
+GetConsoleCommandHistoryW@12
+GetConsoleCursorInfo@8
+GetConsoleCursorMode@12
+GetConsoleDisplayMode@4
+GetConsoleFontInfo@16
+GetConsoleFontSize@8
+GetConsoleHardwareState@12
+GetConsoleHistoryInfo@4
+GetConsoleInputExeNameA@8
+GetConsoleInputExeNameW@8
+GetConsoleInputWaitHandle@0
+GetConsoleKeyboardLayoutNameA@4
+GetConsoleKeyboardLayoutNameW@4
+GetConsoleMode@8
+GetConsoleNlsMode@8
+GetConsoleOriginalTitleA@8
+GetConsoleOriginalTitleW@8
+GetConsoleOutputCP@0
+GetConsoleProcessList@8
+GetConsoleScreenBufferInfo@8
+GetConsoleScreenBufferInfoEx@8
+GetConsoleSelectionInfo@4
+GetConsoleTitleA@8
+GetConsoleTitleW@8
+GetConsoleWindow@0
+GetCurrencyFormatA@24
+GetCurrencyFormatEx@24
+GetCurrencyFormatW@24
+GetCurrentActCtx@4
+GetCurrentActCtxWorker@4
+GetCurrentApplicationUserModelId@8
+GetCurrentConsoleFont@12
+GetCurrentConsoleFontEx@12
+GetCurrentDirectoryA@8
+GetCurrentDirectoryW@8
+GetCurrentPackageFamilyName@8
+GetCurrentPackageFullName@8
+GetCurrentPackageId@8
+GetCurrentPackageInfo@16
+GetCurrentPackagePath@8
+GetCurrentProcess@0
+GetCurrentProcessId@0
+GetCurrentProcessorNumber@0
+GetCurrentProcessorNumberEx@4
+GetCurrentThread@0
+GetCurrentThreadId@0
+GetCurrentThreadStackLimits@8
+GetDateFormatA@24
+GetDateFormatAWorker@28
+GetDateFormatEx@28
+GetDateFormatW@24
+GetDateFormatWWorker@28
+GetDefaultCommConfigA@12
+GetDefaultCommConfigW@12
+GetDevicePowerState@8
+GetDiskFreeSpaceA@20
+GetDiskFreeSpaceExA@16
+GetDiskFreeSpaceExW@16
+GetDiskFreeSpaceW@20
+GetDiskSpaceInformationA@8
+GetDiskSpaceInformationW@8
+GetDllDirectoryA@8
+GetDllDirectoryW@8
+GetDriveTypeA@4
+GetDriveTypeW@4
+GetDurationFormat@32
+GetDurationFormatEx@32
+GetDynamicTimeZoneInformation@4
+GetEnabledXStateFeatures@0
+GetEncryptedFileVersionExt@8
+GetEnvironmentStrings@0
+GetEnvironmentStringsA@0
+GetEnvironmentStringsW@0
+GetEnvironmentVariableA@12
+GetEnvironmentVariableW@12
+GetEraNameCountedString@16
+GetErrorMode@0
+GetExitCodeProcess@8
+GetExitCodeThread@8
+GetExpandedNameA@8
+GetExpandedNameW@8
+GetFileAttributesA@4
+GetFileAttributesExA@12
+GetFileAttributesExW@12
+GetFileAttributesTransactedA@16
+GetFileAttributesTransactedW@16
+GetFileAttributesW@4
+GetFileBandwidthReservation@24
+GetFileInformationByHandle@8
+GetFileInformationByHandleEx@16
+GetFileMUIInfo@16
+GetFileMUIPath@28
+GetFileSize@8
+GetFileSizeEx@8
+GetFileTime@16
+GetFileType@4
+GetFinalPathNameByHandleA@16
+GetFinalPathNameByHandleW@16
+GetFirmwareEnvironmentVariableA@16
+GetFirmwareEnvironmentVariableExA@20
+GetFirmwareEnvironmentVariableExW@20
+GetFirmwareEnvironmentVariableW@16
+GetFirmwareType@4
+GetFullPathNameA@16
+GetFullPathNameTransactedA@20
+GetFullPathNameTransactedW@20
+GetFullPathNameW@16
+GetGeoInfoA@20
+GetGeoInfoEx@16
+GetGeoInfoW@20
+GetHandleContext@4
+GetHandleInformation@8
+GetLargePageMinimum@0
+GetLargestConsoleWindowSize@4
+GetLastError@0
+GetLocalTime@4
+GetLocaleInfoA@16
+GetLocaleInfoEx@16
+GetLocaleInfoW@16
+GetLogicalDriveStringsA@8
+GetLogicalDriveStringsW@8
+GetLogicalDrives@0
+GetLogicalProcessorInformation@8
+GetLogicalProcessorInformationEx@12
+GetLongPathNameA@12
+GetLongPathNameTransactedA@16
+GetLongPathNameTransactedW@16
+GetLongPathNameW@12
+GetMailslotInfo@20
+GetMaximumProcessorCount@4
+GetMaximumProcessorGroupCount@0
+GetMemoryErrorHandlingCapabilities@4
+GetModuleFileNameA@12
+GetModuleFileNameW@12
+GetModuleHandleA@4
+GetModuleHandleExA@12
+GetModuleHandleExW@12
+GetModuleHandleW@4
+GetNLSVersion@12
+GetNLSVersionEx@12
+GetNamedPipeAttribute@20
+GetNamedPipeClientComputerNameA@12
+GetNamedPipeClientComputerNameW@12
+GetNamedPipeClientProcessId@8
+GetNamedPipeClientSessionId@8
+GetNamedPipeHandleStateA@28
+GetNamedPipeHandleStateW@28
+GetNamedPipeInfo@20
+GetNamedPipeServerProcessId@8
+GetNamedPipeServerSessionId@8
+GetNativeSystemInfo@4
+GetNextVDMCommand@4
+GetNumaAvailableMemoryNode@8
+GetNumaAvailableMemoryNodeEx@8
+GetNumaHighestNodeNumber@4
+GetNumaNodeNumberFromHandle@8
+GetNumaNodeProcessorMask@8
+GetNumaNodeProcessorMaskEx@8
+GetNumaProcessorNode@8
+GetNumaProcessorNodeEx@8
+GetNumaProximityNode@8
+GetNumaProximityNodeEx@8
+GetNumberFormatA@24
+GetNumberFormatEx@24
+GetNumberFormatW@24
+GetNumberOfConsoleFonts@0
+GetNumberOfConsoleInputEvents@8
+GetNumberOfConsoleMouseButtons@4
+GetOEMCP@0
+GetOverlappedResult@16
+GetOverlappedResultEx@20
+GetPackageApplicationIds@16
+GetPackageFamilyName@12
+GetPackageFullName@12
+GetPackageId@12
+GetPackageInfo@20
+GetPackagePath@24
+GetPackagePathByFullName@12
+GetPackagesByPackageFamily@20
+GetPhysicallyInstalledSystemMemory@4
+GetPriorityClass@4
+GetPrivateProfileIntA@16
+GetPrivateProfileIntW@16
+GetPrivateProfileSectionA@16
+GetPrivateProfileSectionNamesA@12
+GetPrivateProfileSectionNamesW@12
+GetPrivateProfileSectionW@16
+GetPrivateProfileStringA@24
+GetPrivateProfileStringW@24
+GetPrivateProfileStructA@20
+GetPrivateProfileStructW@20
+GetProcAddress@8
+GetProcessAffinityMask@12
+GetProcessDEPPolicy@12
+GetProcessDefaultCpuSets@16
+GetProcessGroupAffinity@12
+GetProcessHandleCount@8
+GetProcessHeap@0
+GetProcessHeaps@8
+GetProcessId@4
+GetProcessIdOfThread@4
+GetProcessInformation@16
+GetProcessIoCounters@8
+GetProcessMitigationPolicy@16
+GetProcessPreferredUILanguages@16
+GetProcessPriorityBoost@8
+GetProcessShutdownParameters@8
+GetProcessTimes@20
+GetProcessUserModeExceptionPolicy@4
+GetProcessVersion@4
+GetProcessWorkingSetSize@12
+GetProcessWorkingSetSizeEx@16
+GetProcessorSystemCycleTime@12
+GetProductInfo@20
+GetProductName@8
+GetProfileIntA@12
+GetProfileIntW@12
+GetProfileSectionA@12
+GetProfileSectionW@12
+GetProfileStringA@20
+GetProfileStringW@20
+GetQueuedCompletionStatus@20
+GetQueuedCompletionStatusEx@24
+GetShortPathNameA@12
+GetShortPathNameW@12
+GetStagedPackagePathByFullName@12
+GetStartupInfoA@4
+GetStartupInfoW@4
+GetStateFolder@16
+GetStdHandle@4
+GetStringScripts@20
+GetStringTypeA@20
+GetStringTypeExA@20
+GetStringTypeExW@20
+GetStringTypeW@16
+GetSystemAppDataKey@16
+GetSystemCpuSetInformation@20
+GetSystemDEPPolicy@0
+GetSystemDefaultLCID@0
+GetSystemDefaultLangID@0
+GetSystemDefaultLocaleName@8
+GetSystemDefaultUILanguage@0
+GetSystemDirectoryA@8
+GetSystemDirectoryW@8
+GetSystemFileCacheSize@12
+GetSystemFirmwareTable@16
+GetSystemInfo@4
+GetSystemPowerStatus@4
+GetSystemPreferredUILanguages@16
+GetSystemRegistryQuota@8
+GetSystemTime@4
+GetSystemTimeAdjustment@12
+GetSystemTimeAsFileTime@4
+GetSystemTimePreciseAsFileTime@4
+GetSystemTimes@12
+GetSystemWindowsDirectoryA@8
+GetSystemWindowsDirectoryW@8
+GetSystemWow64DirectoryA@8
+GetSystemWow64DirectoryW@8
+GetTapeParameters@16
+GetTapePosition@20
+GetTapeStatus@4
+GetTempFileNameA@16
+GetTempFileNameW@16
+GetTempPathA@8
+GetTempPathW@8
+GetThreadContext@8
+GetThreadDescription@8
+GetThreadErrorMode@0
+GetThreadGroupAffinity@8
+GetThreadIOPendingFlag@8
+GetThreadId@4
+GetThreadIdealProcessorEx@8
+GetThreadInformation@16
+GetThreadLocale@0
+GetThreadPreferredUILanguages@16
+GetThreadPriority@4
+GetThreadPriorityBoost@8
+GetThreadSelectedCpuSets@16
+GetThreadSelectorEntry@12
+GetThreadTimes@20
+GetThreadUILanguage@0
+GetTickCount64@0
+GetTickCount@0
+GetTimeFormatA@24
+GetTimeFormatAWorker@28
+GetTimeFormatEx@24
+GetTimeFormatW@24
+GetTimeFormatWWorker@24
+GetTimeZoneInformation@4
+GetTimeZoneInformationForYear@12
+GetUILanguageInfo@20
+GetUserDefaultGeoName@8
+GetUserDefaultLCID@0
+GetUserDefaultLangID@0
+GetUserDefaultLocaleName@8
+GetUserDefaultUILanguage@0
+GetUserGeoID@4
+GetUserPreferredUILanguages@16
+GetVDMCurrentDirectories@8
+GetVersion@0
+GetVersionExA@4
+GetVersionExW@4
+GetVolumeInformationA@32
+GetVolumeInformationByHandleW@32
+GetVolumeInformationW@32
+GetVolumeNameForVolumeMountPointA@12
+GetVolumeNameForVolumeMountPointW@12
+GetVolumePathNameA@12
+GetVolumePathNameW@12
+GetVolumePathNamesForVolumeNameA@16
+GetVolumePathNamesForVolumeNameW@16
+GetWindowsDirectoryA@8
+GetWindowsDirectoryW@8
+GetWriteWatch@24
+GetXStateFeaturesMask@8
+GlobalAddAtomA@4
+GlobalAddAtomExA@8
+GlobalAddAtomExW@8
+GlobalAddAtomW@4
+GlobalAlloc@8
+GlobalCompact@4
+GlobalDeleteAtom@4
+GlobalFindAtomA@4
+GlobalFindAtomW@4
+GlobalFix@4
+GlobalFlags@4
+GlobalFree@4
+GlobalGetAtomNameA@12
+GlobalGetAtomNameW@12
+GlobalHandle@4
+GlobalLock@4
+GlobalMemoryStatus@4
+GlobalMemoryStatusEx@4
+GlobalMemoryStatusVlm@4
+GlobalReAlloc@12
+GlobalSize@4
+GlobalUnWire@4
+GlobalUnfix@4
+GlobalUnlock@4
+GlobalWire@4
+Heap32First@12
+Heap32ListFirst@8
+Heap32ListNext@8
+Heap32Next@4
+HeapAlloc@12
+HeapCompact@8
+HeapCreate@12
+HeapCreateTagsW@16
+HeapDestroy@4
+HeapExtend@16
+HeapFree@12
+HeapLock@4
+HeapQueryInformation@20
+HeapQueryTagW@20
+HeapReAlloc@16
+HeapSetInformation@16
+HeapSize@12
+HeapSummary@12
+HeapUnlock@4
+HeapUsage@20
+HeapValidate@12
+HeapWalk@8
+IdnToAscii@20
+IdnToNameprepUnicode@20
+IdnToUnicode@20
+InitAtomTable@4
+InitializeCriticalSection@4
+InitOnceBeginInitialize@16
+InitOnceComplete@12
+InitOnceExecuteOnce@16
+InitOnceInitialize@4
+InitializeConditionVariable@4
+InitializeContext2@24
+InitializeContext@16
+InitializeCriticalSection@4
+InitializeCriticalSectionAndSpinCount@8
+InitializeCriticalSectionEx@12
+InitializeEnclave@20
+InitializeProcThreadAttributeList@16
+InitializeSListHead@4
+InitializeSRWLock@4
+InitializeSynchronizationBarrier@12
+InstallELAMCertificateInfo@4
+InterlockedCompareExchange64@20 DATA ; FIXME: this is for Vista+. forwards to NTDLL.RtlInterlockedCompareExchange64@20
+InterlockedCompareExchange@12 DATA
+InterlockedDecrement@4 DATA
+InterlockedExchange@8 DATA
+InterlockedExchangeAdd@8 DATA
+InterlockedFlushSList@4
+InterlockedIncrement@4 DATA
+InterlockedPopEntrySList@4
+InterlockedPushEntrySList@8
+InterlockedPushListSListEx@16
+InvalidateConsoleDIBits@8
+IsBadCodePtr@4
+IsBadHugeReadPtr@8
+IsBadHugeWritePtr@8
+IsBadReadPtr@8
+IsBadStringPtrA@8
+IsBadStringPtrW@8
+IsBadWritePtr@8
+IsCalendarLeapDay@20
+IsCalendarLeapMonth@16
+IsCalendarLeapYear@12
+IsDBCSLeadByte@4
+IsDBCSLeadByteEx@8
+IsDebuggerPresent@0
+IsEnclaveTypeSupported@4
+IsNLSDefinedString@20
+IsNativeVhdBoot@4
+IsNormalizedString@12
+IsProcessCritical@8
+IsProcessInJob@12
+IsProcessorFeaturePresent@4
+IsSystemResumeAutomatic@0
+IsThreadAFiber@0
+IsThreadpoolTimerSet@4
+IsTimeZoneRedirectionEnabled@0
+IsValidCalDateTime@8
+IsValidCodePage@4
+IsValidLanguageGroup@8
+IsValidLocale@8
+IsValidLocaleName@4
+IsValidNLSVersion@12
+IsWow64GuestMachineSupported@8
+IsWow64Process2@12
+IsWow64Process@8
+K32EmptyWorkingSet@4
+K32EnumDeviceDrivers@12
+K32EnumPageFilesA@8
+K32EnumPageFilesW@8
+K32EnumProcessModules@16
+K32EnumProcessModulesEx@20
+K32EnumProcesses@12
+K32GetDeviceDriverBaseNameA@12
+K32GetDeviceDriverBaseNameW@12
+K32GetDeviceDriverFileNameA@12
+K32GetDeviceDriverFileNameW@12
+K32GetMappedFileNameA@16
+K32GetMappedFileNameW@16
+K32GetModuleBaseNameA@16
+K32GetModuleBaseNameW@16
+K32GetModuleFileNameExA@16
+K32GetModuleFileNameExW@16
+K32GetModuleInformation@16
+K32GetPerformanceInfo@8
+K32GetProcessImageFileNameA@12
+K32GetProcessImageFileNameW@12
+K32GetProcessMemoryInfo@12
+K32GetWsChanges@12
+K32GetWsChangesEx@12
+K32InitializeProcessForWsWatch@4
+K32QueryWorkingSet@12
+K32QueryWorkingSetEx@12
+LCIDToLocaleName@16
+LCMapStringA@24
+LCMapStringEx@36
+LCMapStringW@24
+LZClose@4
+LZCloseFile@4
+LZCopy@8
+LZCreateFileW@20
+LZDone@0
+LZInit@4
+LZOpenFileA@12
+LZOpenFileW@12
+LZRead@12
+LZSeek@12
+LZStart@0
+LeaveCriticalSection@4
+LeaveCriticalSectionWhenCallbackReturns@8
+LoadAppInitDlls@0
+LoadEnclaveData@36
+LoadLibraryA@4
+LoadLibraryExA@12
+LoadLibraryExW@12
+LoadLibraryW@4
+LoadModule@8
+LoadPackagedLibrary@8
+LoadResource@8
+LoadStringBaseExW@20
+LoadStringBaseW@16
+LocalAlloc@8
+LocalCompact@4
+LocalFileTimeToFileTime@8
+LocalFileTimeToLocalSystemTime@12
+LocalFlags@4
+LocalFree@4
+LocalHandle@4
+LocalLock@4
+LocalReAlloc@12
+LocalShrink@8
+LocalSize@4
+LocalSystemTimeToLocalFileTime@12
+LocalUnlock@4
+LocaleNameToLCID@8
+LocateXStateFeature@12
+LockFile@20
+LockFileEx@24
+LockResource@4
+MapUserPhysicalPages@12
+MapUserPhysicalPagesScatter@12
+MapViewOfFile@20
+MapViewOfFileEx@24
+MapViewOfFileExNuma@28
+MapViewOfFileVlm@28
+MapViewOfFileFromApp@20
+Module32First@8
+Module32FirstW@8
+Module32Next@8
+Module32NextW@8
+MoveFileA@8
+MoveFileExA@12
+MoveFileExW@12
+MoveFileTransactedA@24
+MoveFileTransactedW@24
+MoveFileW@8
+MoveFileWithProgressA@20
+MoveFileWithProgressW@20
+MulDiv@12
+MultiByteToWideChar@24
+NeedCurrentDirectoryForExePathA@4
+NeedCurrentDirectoryForExePathW@4
+NlsCheckPolicy@8
+NlsConvertIntegerToString@20
+NlsEventDataDescCreate@16
+NlsGetCacheUpdateCount@0
+NlsUpdateLocale@8
+NlsUpdateSystemLocale@8
+NlsWriteEtwEvent@20
+NormalizeString@20
+NotifyMountMgr@12
+NotifyUILanguageChange@20
+NtVdm64CreateProcessInternalW@48
+OOBEComplete@4
+OfferVirtualMemory@12
+OpenConsoleW@16
+OpenConsoleWStub@16
+OpenEventA@12
+OpenEventW@12
+OpenFile@12
+OpenFileById@24
+OpenFileMappingA@12
+OpenFileMappingW@12
+OpenJobObjectA@12
+OpenJobObjectW@12
+OpenMutexA@12
+OpenMutexW@12
+OpenPackageInfoByFullName@12
+OpenPrivateNamespaceA@8
+OpenPrivateNamespaceW@8
+OpenProcess@12
+; MSDN says OpenProcessToken is from Advapi32.dll, not Kernel32.dll
+; OpenProcessToken@12
+OpenProfileUserMapping@0
+OpenSemaphoreA@12
+OpenSemaphoreW@12
+OpenState@0
+OpenStateExplicit@8
+OpenThread@12
+OpenThreadToken@16
+OpenWaitableTimerA@12
+OpenWaitableTimerW@12
+OutputDebugStringA@4
+OutputDebugStringW@4
+PackageFamilyNameFromFullName@12
+PackageFamilyNameFromId@12
+PackageFullNameFromId@12
+PackageIdFromFullName@16
+PackageNameAndPublisherIdFromFamilyName@20
+ParseApplicationUserModelId@20
+PeekConsoleInputA@16
+PeekConsoleInputW@16
+PeekNamedPipe@24
+PostQueuedCompletionStatus@16
+PowerClearRequest@8
+PowerCreateRequest@4
+PowerSetRequest@8
+PrefetchVirtualMemory@16
+PrepareTape@12
+PrivCopyFileExW@24
+PrivMoveFileIdentityW@12
+Process32First@8
+Process32FirstW@8
+Process32Next@8
+Process32NextW@8
+ProcessIdToSessionId@8
+PssCaptureSnapshot@16
+PssDuplicateSnapshot@20
+PssFreeSnapshot@8
+PssQuerySnapshot@16
+PssWalkMarkerCreate@8
+PssWalkMarkerFree@4
+PssWalkMarkerGetPosition@8
+PssWalkMarkerRewind@4
+PssWalkMarkerSeek@8
+PssWalkMarkerSeekToBeginning@4
+PssWalkMarkerSetPosition@8
+PssWalkMarkerTell@8
+PssWalkSnapshot@20
+PulseEvent@4
+PurgeComm@8
+QueryActCtxSettingsW@28
+QueryActCtxSettingsWWorker@28
+QueryActCtxW@28
+QueryActCtxWWorker@28
+QueryDepthSList@4
+QueryDosDeviceA@12
+QueryDosDeviceW@12
+QueryFullProcessImageNameA@16
+QueryFullProcessImageNameW@16
+QueryIdleProcessorCycleTime@8
+QueryIdleProcessorCycleTimeEx@12
+QueryInformationJobObject@20
+QueryIoRateControlInformationJobObject@16
+QueryMemoryResourceNotification@8
+QueryPerformanceCounter@4
+QueryPerformanceFrequency@4
+QueryProcessAffinityUpdateMode@8
+QueryProcessCycleTime@8
+QueryProtectedPolicy@8
+QueryThreadCycleTime@8
+QueryThreadProfiling@8
+QueryThreadpoolStackInformation@8
+QueryUnbiasedInterruptTime@4
+QueueUserAPC@12
+QueueUserWorkItem@12
+QueryWin31IniFilesMappedToRegistry@16
+QuirkGetData2Worker@8
+QuirkGetDataWorker@8
+QuirkIsEnabled2Worker@12
+QuirkIsEnabled3Worker@8
+QuirkIsEnabledForPackage2Worker@24
+QuirkIsEnabledForPackage3Worker@20
+QuirkIsEnabledForPackage4Worker@20
+QuirkIsEnabledForPackageWorker@16
+QuirkIsEnabledForProcessWorker@12
+QuirkIsEnabledWorker@4
+RaiseException@16
+RaiseFailFastException@12
+RaiseInvalid16BitExeError@4
+ReOpenFile@16
+ReclaimVirtualMemory@8
+ReadConsoleA@20
+ReadConsoleInputA@16
+ReadConsoleInputExA@20
+ReadConsoleInputExW@20
+ReadConsoleInputW@16
+ReadConsoleOutputA@20
+ReadConsoleOutputAttribute@20
+ReadConsoleOutputCharacterA@20
+ReadConsoleOutputCharacterW@20
+ReadConsoleOutputW@20
+ReadConsoleW@20
+ReadDirectoryChangesExW@36
+ReadDirectoryChangesW@32
+ReadFile@20
+ReadFileEx@20
+ReadFileScatter@20
+ReadFileVlm@20
+ReadProcessMemory@20
+ReadThreadProfilingData@12
+ReclaimVirtualMemory@8
+;
+; MSDN says these functions are exported
+; from advapi32.dll. Commented out for
+; compatibility with older versions of
+; Windows.
+;
+; RegKrnGetGlobalState and RegKrnInitialize
+; are known exceptions.
+;
+;RegCloseKey@4
+;RegCopyTreeW@12
+;RegCreateKeyExA@36
+;RegCreateKeyExW@36
+;RegDeleteKeyExA@16
+;RegDeleteKeyExW@16
+;RegDeleteTreeA@8
+;RegDeleteTreeW@8
+;RegDeleteValueA@8
+;RegDeleteValueW@8
+;RegDisablePredefinedCacheEx@0
+;RegEnumKeyExA@32
+;RegEnumKeyExW@32
+;RegEnumValueA@32
+;RegEnumValueW@32
+;RegFlushKey@4
+;RegGetKeySecurity@16
+;RegGetValueA@28
+;RegGetValueW@28
+;RegLoadKeyA@12
+;RegLoadKeyW@12
+;RegLoadMUIStringA@28
+;RegLoadMUIStringW@28
+;RegNotifyChangeKeyValue@20
+;RegOpenCurrentUser@8
+;RegOpenKeyExA@20
+;RegOpenKeyExW@20
+;RegOpenUserClassesRoot@16
+;RegQueryInfoKeyA@48
+;RegQueryInfoKeyW@48
+;RegQueryValueExA@24
+;RegQueryValueExW@24
+;RegRestoreKeyA@12
+;RegRestoreKeyW@12
+;RegSaveKeyExA@16
+;RegSaveKeyExW@16
+;RegSetKeySecurity@12
+;RegSetValueExA@24
+;RegSetValueExW@24
+;RegUnLoadKeyA@8
+;RegUnLoadKeyW@8
+RegisterApplicationRecoveryCallback@16
+RegisterApplicationRestart@8
+RegisterBadMemoryNotification@4
+RegisterConsoleIME@8
+RegisterConsoleOS2@4
+RegisterConsoleVDM@44
+RegisterWaitForInputIdle@4
+RegisterWaitForSingleObject@24
+RegisterWaitForSingleObjectEx@20
+RegisterWaitUntilOOBECompleted@12
+RegisterWowBaseHandlers@4
+RegisterWowExec@4
+ReleaseActCtx@4
+ReleaseActCtxWorker@4
+ReleaseMutex@4
+ReleaseMutexWhenCallbackReturns@8
+ReleaseSRWLockExclusive@4
+ReleaseSRWLockShared@4
+ReleaseSemaphore@12
+ReleaseSemaphoreWhenCallbackReturns@12
+ResolveLocaleName@12
+RemoveDirectoryA@4
+RemoveDirectoryTransactedA@8
+RemoveDirectoryTransactedW@8
+RemoveDirectoryW@4
+RemoveDllDirectory@4
+RemoveLocalAlternateComputerNameA@8
+RemoveLocalAlternateComputerNameW@8
+RemoveSecureMemoryCacheCallback@4
+RemoveVectoredContinueHandler@4
+RemoveVectoredExceptionHandler@4
+ReplaceFile@24
+ReplaceFileA@24
+ReplaceFileW@24
+ReplacePartitionUnit@12
+RequestDeviceWakeup@4
+RequestWakeupLatency@4
+ResetEvent@4
+ResetWriteWatch@8
+ResizePseudoConsole@8
+ResolveDelayLoadedAPI@24
+ResolveDelayLoadsFromDll@12
+ResolveLocaleName@12
+RestoreLastError@4
+ResumeThread@4
+RtlCaptureContext@4
+RtlCaptureStackBackTrace@16
+RtlFillMemory@12
+RtlMoveMemory@12
+RtlPcToFileHeader@8
+RtlUnwind@16
+RtlZeroMemory@8
+ScrollConsoleScreenBufferA@20
+ScrollConsoleScreenBufferW@20
+SearchPathA@24
+SearchPathW@24
+SetCachedSigningLevel@16
+SetCalendarInfoA@16
+SetCalendarInfoW@16
+SetClientTimeZoneInformation@4
+SetComPlusPackageInstallStatus@4
+SetCommBreak@4
+SetCommConfig@12
+SetCommMask@8
+SetCommState@8
+SetCommTimeouts@8
+SetComputerNameA@4
+SetComputerNameEx2W@12
+SetComputerNameExA@8
+SetComputerNameExW@8
+SetComputerNameW@4
+SetConsoleActiveScreenBuffer@4
+SetConsoleCP@4
+SetConsoleCommandHistoryMode@4
+SetConsoleCtrlHandler@8
+SetConsoleCursor@8
+SetConsoleCursorInfo@8
+SetConsoleCursorMode@12
+SetConsoleCursorPosition@8
+SetConsoleDisplayMode@12
+SetConsoleFont@8
+SetConsoleHardwareState@12
+SetConsoleHistoryInfo@4
+SetConsoleIcon@4
+SetConsoleInputExeNameA@4
+SetConsoleInputExeNameW@4
+SetConsoleKeyShortcuts@16
+SetConsoleLocalEUDC@16
+SetConsoleMaximumWindowSize@8
+SetConsoleMenuClose@4
+SetConsoleMode@8
+SetConsoleNlsMode@8
+SetConsoleNumberOfCommandsA@8
+SetConsoleNumberOfCommandsW@8
+SetConsoleOS2OemFormat@4
+SetConsoleOutputCP@4
+SetConsolePalette@12
+SetConsoleScreenBufferInfoEx@8
+SetConsoleScreenBufferSize@8
+SetConsoleTextAttribute@8
+SetConsoleTitleA@4
+SetConsoleTitleW@4
+SetConsoleWindowInfo@12
+SetCriticalSectionSpinCount@8
+SetCurrentConsoleFontEx@12
+SetCurrentDirectoryA@4
+SetCurrentDirectoryW@4
+SetDefaultCommConfigA@12
+SetDefaultCommConfigW@12
+SetDefaultDllDirectories@4
+SetDllDirectoryA@4
+SetDllDirectoryW@4
+SetDynamicTimeZoneInformation@4
+SetEndOfFile@4
+SetEnvironmentStringsA@4
+SetEnvironmentStringsW@4
+SetEnvironmentVariableA@8
+SetEnvironmentVariableW@8
+SetErrorMode@4
+SetEvent@4
+SetEventWhenCallbackReturns@8
+SetFileApisToANSI@0
+SetFileApisToOEM@0
+SetFileAttributesA@8
+SetFileAttributesTransactedA@12
+SetFileAttributesTransactedW@12
+SetFileAttributesW@8
+SetFileBandwidthReservation@24
+SetFileCompletionNotificationModes@8
+SetFileInformationByHandle@16
+SetFileIoOverlappedRange@12
+SetFilePointer@16
+SetFilePointerEx@20
+SetFileShortNameA@8
+SetFileShortNameW@8
+SetFileTime@16
+SetFileValidData@12
+SetFirmwareEnvironmentVariableA@16
+SetFirmwareEnvironmentVariableExA@20
+SetFirmwareEnvironmentVariableExW@20
+SetFirmwareEnvironmentVariableW@16
+SetHandleContext@8
+SetHandleCount@4
+SetHandleInformation@12
+SetInformationJobObject@16
+SetIoRateControlInformationJobObject@8
+SetLastConsoleEventActive@0
+SetLastError@4
+SetLocalPrimaryComputerNameA@8
+SetLocalPrimaryComputerNameW@8
+SetLocalTime@4
+SetLocaleInfoA@12
+SetLocaleInfoW@12
+SetMailslotInfo@8
+SetMessageWaitingIndicator@8
+SetNamedPipeAttribute@20
+SetNamedPipeHandleState@16
+SetPriorityClass@8
+SetProcessAffinityMask@8
+SetProcessAffinityUpdateMode@8
+SetProcessDEPPolicy@4
+SetProcessDefaultCpuSets@12
+SetProcessInformation@16
+SetProcessMitigationPolicy@12
+SetProcessPreferredUILanguages@12
+SetProcessPriorityBoost@8
+SetProcessShutdownParameters@8
+SetProcessUserModeExceptionPolicy@4
+SetProcessWorkingSetSize@12
+SetProcessWorkingSetSizeEx@16
+SetProtectedPolicy@12
+SetSearchPathMode@4
+SetStdHandle@8
+SetStdHandleEx@12
+SetSystemFileCacheSize@12
+SetSystemPowerState@8
+SetSystemTime@4
+SetSystemTimeAdjustment@8
+SetTapeParameters@12
+SetTapePosition@24
+SetTermsrvAppInstallMode@4
+SetThreadAffinityMask@8
+SetThreadContext@8
+SetThreadDescription@8
+SetThreadErrorMode@8
+SetThreadExecutionState@4
+SetThreadGroupAffinity@12
+SetThreadIdealProcessor@8
+SetThreadIdealProcessorEx@12
+SetThreadInformation@16
+SetThreadLocale@4
+SetThreadPreferredUILanguages@12
+SetThreadPriority@8
+SetThreadPriorityBoost@8
+SetThreadSelectedCpuSets@12
+SetThreadStackGuarantee@4
+SetThreadToken@8
+SetThreadUILanguage@4
+SetThreadpoolStackInformation@8
+SetThreadpoolThreadMaximum@8
+SetThreadpoolThreadMinimum@8
+SetThreadpoolTimer@16
+SetThreadpoolTimerEx@16
+SetThreadpoolWait@12
+SetThreadpoolWaitEx@16
+SetTimeZoneInformation@4
+SetTimerQueueTimer@24
+SetUnhandledExceptionFilter@4
+SetUserGeoID@4
+SetUserGeoName@4
+SetVDMCurrentDirectories@8
+SetVolumeLabelA@8
+SetVolumeLabelW@8
+SetVolumeMountPointA@8
+SetVolumeMountPointW@8
+SetVolumeMountPointWStub@8
+SetWaitableTimer@24
+SetWaitableTimerEx@28
+SetXStateFeaturesMask@12
+SetupComm@12
+ShowConsoleCursor@8
+SignalObjectAndWait@16
+SizeofResource@8
+Sleep@4
+SleepConditionVariableCS@12
+SleepConditionVariableSRW@16
+SleepEx@8
+SortCloseHandle@4
+SortGetHandle@12
+StartThreadpoolIo@4
+SubmitThreadpoolWork@4
+SuspendThread@4
+SwitchToFiber@4
+SwitchToThread@0
+SystemTimeToFileTime@8
+SystemTimeToTzSpecificLocalTime@12
+SystemTimeToTzSpecificLocalTimeEx@12
+TerminateJobObject@8
+TerminateProcess@8
+TerminateThread@8
+TermsrvAppInstallMode@0
+TermsrvConvertSysRootToUserDir@8
+TermsrvCreateRegEntry@20
+TermsrvDeleteKey@4
+TermsrvDeleteValue@8
+TermsrvGetPreSetValue@16
+TermsrvGetWindowsDirectoryA@8
+TermsrvGetWindowsDirectoryW@8
+TermsrvOpenRegEntry@12
+TermsrvOpenUserClasses@8
+TermsrvRestoreKey@12
+TermsrvSetKeySecurity@12
+TermsrvSetValueKey@24
+TermsrvSyncUserIniFileExt@4
+Thread32First@8
+Thread32Next@8
+TlsAlloc@0
+TlsFree@4
+TlsGetValue@4
+TlsSetValue@8
+Toolhelp32ReadProcessMemory@20
+TransactNamedPipe@28
+TransmitCommChar@8
+TrimVirtualBuffer@4
+TryAcquireSRWLockExclusive@4
+TryAcquireSRWLockShared@4
+TryEnterCriticalSection@4
+TrySubmitThreadpoolCallback@12
+TzSpecificLocalTimeToSystemTime@12
+TzSpecificLocalTimeToSystemTimeEx@12
+UTRegister@28
+UTUnRegister@4
+UnhandledExceptionFilter@4
+UnlockFile@20
+UnlockFileEx@20
+UnmapViewOfFile@4
+UnmapViewOfFileVlm@4
+UnregisterApplicationRecoveryCallback@0
+UnregisterApplicationRestart@0
+UnregisterBadMemoryNotification@4
+UnregisterConsoleIME@0
+UnregisterWait@4
+UnregisterWaitEx@8
+UnregisterWaitUntilOOBECompleted@4
+UpdateCalendarDayOfWeek@4
+UpdateProcThreadAttribute@28
+UpdateResourceA@24
+UpdateResourceW@24
+VDMConsoleOperation@8
+VDMOperationStarted@4
+VerLanguageNameA@12
+VerLanguageNameW@12
+VerSetConditionMask@16
+VerifyConsoleIoHandle@4
+VerifyScripts@20
+VerifyVersionInfoA@16
+VerifyVersionInfoW@16
+VirtualAlloc@16
+VirtualAllocEx@20
+VirtualAllocExNuma@24
+VirtualAllocVlm@24
+VirtualBufferExceptionHandler@12
+VirtualFree@12
+VirtualFreeEx@16
+VirtualFreeVlm@20
+VirtualLock@8
+VirtualProtect@16
+VirtualProtectEx@20
+VirtualProtectVlm@24
+VirtualQuery@12
+VirtualQueryEx@16
+VirtualQueryVlm@16
+VirtualUnlock@8
+WTSGetActiveConsoleSessionId@0
+WaitCommEvent@12
+WaitForDebugEvent@8
+WaitForMultipleObjects@16
+WaitForMultipleObjectsEx@20
+WaitForSingleObject@8
+WaitForSingleObjectEx@12
+WaitForThreadpoolIoCallbacks@8
+WaitForThreadpoolTimerCallbacks@8
+WaitForThreadpoolWaitCallbacks@8
+WaitForThreadpoolWorkCallbacks@8
+WaitNamedPipeA@8
+WaitNamedPipeW@8
+WakeAllConditionVariable@4
+WakeConditionVariable@4
+WerGetFlags@8
+WerGetFlagsWorker@8
+WerRegisterAdditionalProcess@8
+WerRegisterAppLocalDump@4
+WerRegisterCustomMetadata@8
+WerRegisterExcludedMemoryBlock@8
+WerRegisterFile@12
+WerRegisterFileWorker@12
+WerRegisterMemoryBlock@8
+WerRegisterMemoryBlockWorker@8
+WerRegisterRuntimeExceptionModule@8
+WerRegisterRuntimeExceptionModuleWorker@8
+WerSetFlags@4
+WerSetFlagsWorker@4
+WerUnregisterAdditionalProcess@4
+WerUnregisterAppLocalDump
+WerUnregisterCustomMetadata@4
+WerUnregisterExcludedMemoryBlock@4
+WerUnregisterFile@4
+WerUnregisterFileWorker@4
+WerUnregisterMemoryBlock@4
+WerUnregisterMemoryBlockWorker@4
+WerUnregisterRuntimeExceptionModule@8
+WerUnregisterRuntimeExceptionModuleWorker@8
+WerpCleanupMessageMapping@0
+WerpGetDebugger@8
+WerpInitiateRemoteRecovery@4
+WerpNotifyLoadStringResource@16
+WerpNotifyLoadStringResourceEx@20
+WerpNotifyUseStringResource@4
+WerpStringLookup@8
+WideCharToMultiByte@32
+WinExec@8
+Wow64DisableWow64FsRedirection@4
+Wow64EnableWow64FsRedirection@4
+Wow64GetThreadContext@8
+Wow64GetThreadSelectorEntry@12
+Wow64RevertWow64FsRedirection@4
+Wow64SetThreadContext@8
+Wow64SuspendThread@4
+WriteConsoleA@20
+WriteConsoleInputA@16
+WriteConsoleInputVDMA@16
+WriteConsoleInputVDMW@16
+WriteConsoleInputW@16
+WriteConsoleOutputA@20
+WriteConsoleOutputAttribute@20
+WriteConsoleOutputCharacterA@20
+WriteConsoleOutputCharacterW@20
+WriteConsoleOutputW@20
+WriteConsoleW@20
+WriteFile@20
+WriteFileEx@20
+WriteFileGather@20
+WriteFileVlm@20
+WritePrivateProfileSectionA@12
+WritePrivateProfileSectionW@12
+WritePrivateProfileStringA@16
+WritePrivateProfileStringW@16
+WritePrivateProfileStructA@20
+WritePrivateProfileStructW@20
+WriteProcessMemory@20
+WriteProcessMemoryVlm@20
+WriteProfileSectionA@8
+WriteProfileSectionW@8
+WriteProfileStringA@12
+WriteProfileStringW@12
+WriteTapemark@16
+WTSGetActiveConsoleSessionId@0
+ZombifyActCtx@4
+ZombifyActCtxWorker@4
+_hread@12
+_hwrite@12
+_lclose@4
+_lcreat@8
+_llseek@12
+_lopen@8
+_lread@12
+_lwrite@12
+lstrcat@8
+lstrcatA@8
+lstrcatW@8
+lstrcmp@8
+lstrcmpA@8
+lstrcmpW@8
+lstrcmpi@8
+lstrcmpiA@8
+lstrcmpiW@8
+lstrcpy@8
+lstrcpyA@8
+lstrcpyW@8
+lstrcpyn@12
+lstrcpynA@12
+lstrcpynW@12
+lstrlen@4
+lstrlenA@4
+lstrlenW@4
+;
+; MSDN says these functions are exported
+; from winmm.dll. Commented out for
+; compatibility with older versions of
+; Windows.
+;
+;timeBeginPeriod@4
+;timeEndPeriod@4
+;timeGetDevCaps@8
+;timeGetSystemTime@8
+;timeGetTime@0
diff --git a/lib/libc/mingw/lib32/lz32.def b/lib/libc/mingw/lib32/lz32.def
@@ -0,0 +1,14 @@
+LIBRARY LZ32.DLL
+EXPORTS
+CopyLZFile@8
+GetExpandedNameA@8
+GetExpandedNameW@8
+LZClose@4
+LZCopy@8
+LZDone@0
+LZInit@4
+LZOpenFileA@12
+LZOpenFileW@12
+LZRead@12
+LZSeek@12
+LZStart@0
diff --git a/lib/libc/mingw/lib32/mpr.def b/lib/libc/mingw/lib32/mpr.def
@@ -0,0 +1,72 @@
+LIBRARY MPR.DLL
+EXPORTS
+MultinetGetConnectionPerformanceA@8
+MultinetGetConnectionPerformanceW@8
+RestoreConnectionA0@8
+WNetAddConnection2A@16
+WNetAddConnection2W@16
+WNetAddConnection3A@20
+WNetAddConnection3W@20
+WNetAddConnectionA@12
+WNetAddConnectionW@12
+WNetCancelConnection2A@12
+WNetCancelConnection2W@12
+WNetCancelConnectionA@8
+WNetCancelConnectionW@8
+WNetClearConnections@4
+WNetCloseEnum@4
+WNetConnectionDialog1A@4
+WNetConnectionDialog1W@4
+WNetConnectionDialog2@16
+WNetConnectionDialog@8
+WNetDirectoryNotifyA@12
+WNetDirectoryNotifyW@12
+WNetDisconnectDialog1A@4
+WNetDisconnectDialog1W@4
+WNetDisconnectDialog2@16
+WNetDisconnectDialog@8
+WNetEnumResourceA@16
+WNetEnumResourceW@16
+WNetFMXEditPerm@12
+WNetFMXGetPermCaps@4
+WNetFMXGetPermHelp@24
+WNetFormatNetworkNameA@24
+WNetFormatNetworkNameW@24
+WNetGetConnection2A@12
+WNetGetConnection2W@12
+WNetGetConnectionA@12
+WNetGetConnectionW@12
+WNetGetDirectoryTypeA@12
+WNetGetDirectoryTypeW@12
+WNetGetFormatNameProc@4
+WNetGetLastErrorA@20
+WNetGetLastErrorW@20
+WNetGetNetworkInformationA@8
+WNetGetNetworkInformationW@8
+WNetGetPropertyTextA@24
+WNetGetPropertyTextW@24
+WNetGetProviderNameA@12
+WNetGetProviderNameW@12
+WNetGetResourceInformationA@16
+WNetGetResourceInformationW@16
+WNetGetResourceParentA@12
+WNetGetResourceParentW@12
+WNetGetSearchDialog@4
+WNetGetUniversalNameA@16
+WNetGetUniversalNameW@16
+WNetGetUserA@12
+WNetGetUserW@12
+WNetLogonNotify@36
+WNetOpenEnumA@20
+WNetOpenEnumW@20
+WNetPasswordChangeNotify@32
+WNetPropertyDialogA@20
+WNetPropertyDialogW@20
+WNetRestoreConnection@8
+WNetSetConnectionA@12
+WNetSetConnectionW@12
+WNetSetLastErrorA@12
+WNetSetLastErrorW@12
+WNetSupportGlobalEnum@4
+WNetUseConnectionA@32
+WNetUseConnectionW@32
diff --git a/lib/libc/mingw/lib32/mswsock.def b/lib/libc/mingw/lib32/mswsock.def
@@ -0,0 +1,28 @@
+LIBRARY MSWSOCK.DLL
+EXPORTS
+AcceptEx@32
+EnumProtocolsA@12
+EnumProtocolsW@12
+GetAcceptExSockaddrs@32
+GetAddressByNameA@40
+GetAddressByNameW@40
+GetNameByTypeA@12
+GetNameByTypeW@12
+GetServiceA@28
+GetServiceW@28
+GetTypeByNameA@8
+GetTypeByNameW@8
+MigrateWinsockConfiguration@12
+NPLoadNameSpaces@12
+SetServiceA@24
+SetServiceW@24
+TransmitFile@28
+WSARecvEx@16
+dn_expand@20
+getnetbyname@4
+inet_network@4
+rcmd@24
+rexec@24
+rresvport@4
+s_perror@8
+sethostname@8
diff --git a/lib/libc/mingw/lib32/ncrypt.def b/lib/libc/mingw/lib32/ncrypt.def
@@ -0,0 +1,61 @@
+;
+; Definition file of ncrypt.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "ncrypt.dll"
+EXPORTS
+GetIsolationServerInterface@12
+GetKeyStorageInterface@12
+GetSChannelInterface@12
+NCryptCreatePersistedKey@24
+NCryptDecrypt@32
+NCryptDeleteKey@8
+NCryptDeriveKey@28
+NCryptEncrypt@32
+NCryptEnumAlgorithms@20
+NCryptEnumKeys@20
+NCryptEnumStorageProviders@12
+NCryptExportKey@32
+NCryptFinalizeKey@8
+NCryptFreeBuffer@4
+NCryptFreeObject@4
+NCryptGetProperty@24
+NCryptImportKey@32
+NCryptIsAlgSupported@12
+NCryptIsKeyHandle@4
+NCryptNotifyChangeKey@12
+NCryptOpenKey@20
+NCryptOpenStorageProvider@12
+NCryptSecretAgreement@16
+NCryptSetAuditingInterface@4
+NCryptSetProperty@20
+NCryptSignHash@32
+NCryptTranslateHandle@24
+NCryptVerifySignature@28
+SslChangeNotify@8
+SslComputeClientAuthHash@32
+SslComputeEapKeyBlock@32
+SslComputeFinishedHash@24
+SslCreateEphemeralKey@36
+SslCreateHandshakeHash@20
+SslDecrementProviderReferenceCount@4
+SslDecryptPacket@40
+SslEncryptPacket@44
+SslEnumCipherSuites@20
+SslEnumProtocolProviders@12
+SslExportKey@28
+SslFreeBuffer@4
+SslFreeObject@8
+SslGenerateMasterKey@44
+SslGenerateSessionKeys@24
+SslGetKeyProperty@20
+SslGetProviderProperty@24
+SslHashHandshake@20
+SslImportKey@24
+SslImportMasterKey@36
+SslIncrementProviderReferenceCount@4
+SslLookupCipherSuiteInfo@24
+SslOpenPrivateKey@16
+SslOpenProvider@12
+SslSignHash@32
diff --git a/lib/libc/mingw/lib32/netapi32.def b/lib/libc/mingw/lib32/netapi32.def
@@ -0,0 +1,413 @@
+;
+; Definition file of NETAPI32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "NETAPI32.dll"
+EXPORTS
+CredpValidateTargetName@52
+DavAddConnection@24
+DavDeleteConnection@4
+DavFlushFile@4
+DavGetExtendedError@16
+DavGetHTTPFromUNCPath@12
+DavGetUNCFromHTTPPath@12
+DsAddressToSiteNamesA@16
+DsAddressToSiteNamesExA@20
+DsAddressToSiteNamesExW@20
+DsAddressToSiteNamesW@16
+DsDeregisterDnsHostRecordsA@20
+DsDeregisterDnsHostRecordsW@20
+DsEnumerateDomainTrustsA@16
+DsEnumerateDomainTrustsW@16
+DsGetDcCloseW@4
+DsGetDcNameA@24
+DsGetDcNameW@24
+DsGetDcNameWithAccountA@32
+DsGetDcNameWithAccountW@32
+DsGetDcNextA@16
+DsGetDcNextW@16
+DsGetDcOpenA@28
+DsGetDcOpenW@28
+DsGetDcSiteCoverageA@12
+DsGetDcSiteCoverageW@12
+DsGetForestTrustInformationW@16
+DsGetSiteNameA@8
+DsGetSiteNameW@8
+DsMergeForestTrustInformationW@16
+DsRoleAbortDownlevelServerUpgrade@16
+DsRoleCancel@8
+DsRoleDcAsDc@68
+DsRoleDcAsReplica@12
+DsRoleDemoteDc@44
+DsRoleDnsNameToFlatName@16
+DsRoleFreeMemory@4
+DsRoleGetDatabaseFacts@24
+DsRoleGetDcOperationProgress@12
+DsRoleGetDcOperationResults@12
+DsRoleGetPrimaryDomainInformation@12
+DsRoleIfmHandleFree@8
+DsRoleServerSaveStateForUpgrade@4
+DsRoleUpgradeDownlevelServer@48
+DsValidateSubnetNameA@4
+DsValidateSubnetNameW@4
+I_BrowserDebugCall@12
+I_BrowserDebugTrace@8
+I_BrowserQueryEmulatedDomains@12
+I_BrowserQueryOtherDomains@16
+I_BrowserQueryStatistics@8
+I_BrowserResetNetlogonState@4
+I_BrowserResetStatistics@4
+I_BrowserServerEnum@44
+I_BrowserSetNetlogonState@16
+I_DsUpdateReadOnlyServerDnsRecords@28
+I_NetAccountDeltas@48
+I_NetAccountSync@48
+I_NetChainSetClientAttributes2@36
+I_NetChainSetClientAttributes@36
+I_NetDatabaseDeltas@32
+I_NetDatabaseRedo@28
+I_NetDatabaseSync2@36
+I_NetDatabaseSync@32
+I_NetDfsCreateExitPoint@24
+I_NetDfsCreateLocalPartition@28
+I_NetDfsDeleteExitPoint@16
+I_NetDfsDeleteLocalPartition@12
+I_NetDfsFixLocalVolume@36
+I_NetDfsGetFtServers@16
+I_NetDfsGetVersion@8
+I_NetDfsIsThisADomainName@4
+I_NetDfsManagerReportSiteInfo@8
+I_NetDfsModifyPrefix@12
+I_NetDfsSetLocalVolumeState@16
+I_NetDfsSetServerInfo@12
+I_NetGetDCList@16
+I_NetGetForestTrustInformation@24
+I_NetListCanonicalize@36
+I_NetListTraverse@12
+I_NetLogonControl2@20
+I_NetLogonControl@16
+I_NetLogonGetDomainInfo@28
+I_NetLogonSamLogoff@24
+I_NetLogonSamLogon@36
+I_NetLogonSamLogonEx@40
+I_NetLogonSamLogonWithFlags@40
+I_NetLogonSendToSam@24
+I_NetLogonUasLogoff@12
+I_NetLogonUasLogon@12
+I_NetNameCanonicalize@24
+I_NetNameCompare@20
+I_NetNameValidate@16
+I_NetPathCanonicalize@28
+I_NetPathCompare@20
+I_NetPathType@16
+I_NetServerAuthenticate2@28
+I_NetServerAuthenticate3@32
+I_NetServerAuthenticate@24
+I_NetServerGetTrustInfo@36
+I_NetServerPasswordGet@28
+I_NetServerPasswordSet2@28
+I_NetServerPasswordSet@28
+I_NetServerReqChallenge@16
+I_NetServerSetServiceBits@16
+I_NetServerSetServiceBitsEx@24
+I_NetServerTrustPasswordsGet@32
+I_NetlogonComputeClientDigest@24
+I_NetlogonComputeServerDigest@24
+I_NetlogonGetTrustRid@12
+NetAccessAdd@16
+NetAccessDel@8
+NetAccessEnum@36
+NetAccessGetInfo@16
+NetAccessGetUserPerms@16
+NetAccessSetInfo@20
+NetAddAlternateComputerName@20
+NetAddServiceAccount@16
+NetAlertRaise@12
+NetAlertRaiseEx@16
+NetApiBufferAllocate@8
+NetApiBufferFree@4
+NetApiBufferReallocate@12
+NetApiBufferSize@8
+NetAuditClear@12
+NetAuditRead@44
+NetAuditWrite@20
+NetBrowserStatisticsGet@12
+NetConfigGet@16
+NetConfigGetAll@12
+NetConfigSet@28
+NetConnectionEnum@32
+NetDfsAdd@20
+NetDfsAddFtRoot@20
+NetDfsAddRootTarget@20
+NetDfsAddStdRoot@16
+NetDfsAddStdRootForced@16
+NetDfsEnum@24
+NetDfsGetClientInfo@20
+NetDfsGetDcAddress@16
+NetDfsGetFtContainerSecurity@16
+NetDfsGetInfo@20
+NetDfsGetSecurity@16
+NetDfsGetStdContainerSecurity@16
+NetDfsGetSupportedNamespaceVersion@12
+NetDfsManagerGetConfigInfo@28
+NetDfsManagerInitialize@8
+NetDfsManagerSendSiteInfo@12
+NetDfsMove@12
+NetDfsRemove@12
+NetDfsRemoveFtRoot@16
+NetDfsRemoveFtRootForced@20
+NetDfsRemoveRootTarget@12
+NetDfsRemoveStdRoot@12
+NetDfsRename@8
+NetDfsSetClientInfo@20
+NetDfsSetFtContainerSecurity@12
+NetDfsSetInfo@20
+NetDfsSetSecurity@12
+NetDfsSetStdContainerSecurity@12
+NetEnumerateComputerNames@20
+NetEnumerateServiceAccounts@16
+NetEnumerateTrustedDomains@8
+NetErrorLogClear@12
+NetErrorLogRead@44
+NetErrorLogWrite@32
+NetFileClose@8
+NetFileEnum@36
+NetFileGetInfo@16
+NetGetAnyDCName@12
+NetGetDCName@12
+NetGetDisplayInformationIndex@16
+NetGetJoinInformation@12
+NetGetJoinableOUs@24
+NetGroupAdd@16
+NetGroupAddUser@12
+NetGroupDel@8
+NetGroupDelUser@12
+NetGroupEnum@28
+NetGroupGetInfo@16
+NetGroupGetUsers@32
+NetGroupSetInfo@20
+NetGroupSetUsers@20
+NetIsServiceAccount@12
+NetJoinDomain@24
+NetLocalGroupAdd@16
+NetLocalGroupAddMember@12
+NetLocalGroupAddMembers@20
+NetLocalGroupDel@8
+NetLocalGroupDelMember@12
+NetLocalGroupDelMembers@20
+NetLocalGroupEnum@28
+NetLocalGroupGetInfo@16
+NetLocalGroupGetMembers@32
+NetLocalGroupSetInfo@20
+NetLocalGroupSetMembers@20
+NetLogonGetTimeServiceParentDomain@12
+NetLogonSetServiceBits@12
+NetMessageBufferSend@20
+NetMessageNameAdd@8
+NetMessageNameDel@8
+NetMessageNameEnum@28
+NetMessageNameGetInfo@16
+NetProvisionComputerAccount@32
+NetQueryDisplayInformation@28
+NetQueryServiceAccount@16
+NetRegisterDomainNameChangeNotification@4
+NetRemoteComputerSupports@12
+NetRemoteTOD@8
+NetRemoveAlternateComputerName@20
+NetRemoveServiceAccount@12
+NetRenameMachineInDomain@20
+NetReplExportDirAdd@16
+NetReplExportDirDel@8
+NetReplExportDirEnum@28
+NetReplExportDirGetInfo@16
+NetReplExportDirLock@8
+NetReplExportDirSetInfo@20
+NetReplExportDirUnlock@12
+NetReplGetInfo@12
+NetReplImportDirAdd@16
+NetReplImportDirDel@8
+NetReplImportDirEnum@28
+NetReplImportDirGetInfo@16
+NetReplImportDirLock@8
+NetReplImportDirUnlock@12
+NetReplSetInfo@16
+NetRplAdapterAdd@16
+NetRplAdapterDel@8
+NetRplAdapterEnum@28
+NetRplBootAdd@16
+NetRplBootDel@12
+NetRplBootEnum@28
+NetRplClose@4
+NetRplConfigAdd@16
+NetRplConfigDel@8
+NetRplConfigEnum@32
+NetRplGetInfo@12
+NetRplOpen@8
+NetRplProfileAdd@16
+NetRplProfileClone@16
+NetRplProfileDel@8
+NetRplProfileEnum@32
+NetRplProfileGetInfo@16
+NetRplProfileSetInfo@20
+NetRplSetInfo@16
+NetRplSetSecurity@16
+NetRplVendorAdd@16
+NetRplVendorDel@8
+NetRplVendorEnum@28
+NetRplWkstaAdd@16
+NetRplWkstaClone@24
+NetRplWkstaDel@8
+NetRplWkstaEnum@32
+NetRplWkstaGetInfo@16
+NetRplWkstaSetInfo@20
+NetRequestOfflineDomainJoin@16
+NetScheduleJobAdd@12
+NetScheduleJobDel@12
+NetScheduleJobEnum@24
+NetScheduleJobGetInfo@12
+NetServerAliasAdd@12
+NetServerAliasDel@12
+NetServerAliasEnum@28
+NetServerComputerNameAdd@12
+NetServerComputerNameDel@8
+NetServerDiskEnum@28
+NetServerEnum@36
+NetServerEnumEx@36
+NetServerGetInfo@12
+NetServerSetInfo@16
+NetServerTransportAdd@12
+NetServerTransportAddEx@12
+NetServerTransportDel@12
+NetServerTransportEnum@28
+NetServiceControl@20
+NetServiceEnum@28
+NetServiceGetInfo@16
+NetServiceInstall@20
+NetSessionDel@12
+NetSessionEnum@36
+NetSessionGetInfo@20
+NetSetPrimaryComputerName@20
+NetShareAdd@16
+NetShareCheck@12
+NetShareDel@12
+NetShareDelEx@12
+NetShareDelSticky@12
+NetShareEnum@28
+NetShareEnumSticky@28
+NetShareGetInfo@16
+NetShareSetInfo@20
+NetStatisticsGet@20
+NetUnjoinDomain@16
+NetUnregisterDomainNameChangeNotification@4
+NetUseAdd@16
+NetUseDel@12
+NetUseEnum@28
+NetUseGetInfo@16
+NetUserAdd@16
+NetUserChangePassword@16
+NetUserDel@8
+NetUserEnum@32
+NetUserGetGroups@28
+NetUserGetInfo@16
+NetUserGetLocalGroups@32
+NetUserModalsGet@12
+NetUserModalsSet@16
+NetUserSetGroups@20
+NetUserSetInfo@20
+NetValidateName@20
+NetValidatePasswordPolicy@20
+NetValidatePasswordPolicyFree@4
+NetWkstaGetInfo@12
+NetWkstaSetInfo@16
+NetWkstaTransportAdd@16
+NetWkstaTransportDel@12
+NetWkstaTransportEnum@28
+NetWkstaUserEnum@28
+NetWkstaUserGetInfo@12
+NetWkstaUserSetInfo@16
+NetapipBufferAllocate@8
+Netbios@4
+NetpAccessCheck@12
+NetpAccessCheckAndAudit@20
+NetpAccessCheckAndAuditEx@28
+NetpAddTlnFtinfoEntry@8
+NetpAllocConfigName@16
+NetpAllocFtinfoEntry@20
+NetpAllocStrFromWStr@4
+NetpAllocWStrFromStr@4
+NetpAllocWStrFromWStr@4
+NetpApiStatusToNtStatus@4
+NetpAssertFailed@16
+NetpCleanFtinfoContext@4
+NetpCloseConfigData@4
+NetpCopyFtinfoContext@4
+NetpCopyStringToBuffer@20
+NetpCreateSecurityObject@24
+NetpDbgDisplayServerInfo@8
+NetpDbgPrint@0
+NetpDeleteSecurityObject@4
+NetpEventlogClose@4
+NetpEventlogOpen@8
+NetpEventlogWriteEx@32
+NetpGetComputerName@4
+NetpGetConfigBool@16
+NetpGetConfigDword@16
+NetpGetConfigTStrArray@12
+NetpGetConfigValue@12
+NetpGetDomainName@4
+NetpGetFileSecurity@16
+NetpGetPrivilege@8
+NetpHexDump@8
+NetpInitOemString@8
+NetpInitFtinfoContext@4
+NetpIsRemote@20
+NetpIsUncComputerNameValid@4
+NetpLocalTimeZoneOffset@0
+NetpLogonPutUnicodeString@12
+NetpNetBiosAddName@12
+NetpNetBiosCall@16
+NetpNetBiosDelName@8
+NetpNetBiosGetAdapterNumbers@8
+NetpNetBiosHangup@8
+NetpNetBiosReceive@24
+NetpMergeFtinfo@16
+NetpNetBiosReset@4
+NetpNetBiosSend@16
+NetpNetBiosStatusToApiStatus@4
+NetpNtStatusToApiStatus@4
+NetpOpenConfigData@16
+NetpPackString@12
+NetpReleasePrivilege@0
+NetpSetConfigBool@12
+NetpSetConfigDword@12
+NetpSetConfigTStrArray@12
+NetpParmsQueryUserProperty@16
+NetpParmsQueryUserPropertyWithLength@16
+NetpParmsSetUserProperty@28
+NetpParmsUserPropertyFree@4
+NetpOpenConfigData@12
+NetpSetFileSecurity@12
+NetpSmbCheck@20
+NetpStringToNetBiosName@16
+NetpStoreIntialDcRecord@4
+NetpTStrArrayEntryCount@4
+NetpUpgradePreNT5JoinInfo@0
+NetpwNameCanonicalize@20
+NetpwNameCompare@16
+NetpwNameValidate@12
+NetpwPathCanonicalize@24
+NetpwPathCompare@16
+NetpwPathType@12
+NlBindingAddServerToCache@8
+NlBindingRemoveServerFromCache@8
+NlBindingSetAuthInfo@20
+RxNetAccessAdd@16
+RxNetAccessDel@8
+RxNetAccessEnum@36
+RxNetAccessGetInfo@16
+RxNetAccessGetUserPerms@16
+RxNetAccessSetInfo@20
+RxNetServerEnum@40
+RxNetUserPasswordSet@16
+RxRemoteApi
diff --git a/lib/libc/mingw/lib32/ole32.def b/lib/libc/mingw/lib32/ole32.def
@@ -0,0 +1,405 @@
+;
+; Definition file of ole32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "ole32.dll"
+EXPORTS
+CoVrfCheckThreadState@4
+CoVrfGetThreadState@4
+CoVrfReleaseThreadState@4
+HRGN_UserFree@8
+HRGN_UserMarshal@12
+HRGN_UserSize@12
+HRGN_UserUnmarshal@12
+NdrOleInitializeExtension@8
+PropVariantChangeType@20
+BindMoniker@16
+CLIPFORMAT_UserFree@8
+CLIPFORMAT_UserMarshal@12
+CLIPFORMAT_UserSize@12
+CLIPFORMAT_UserUnmarshal@12
+CLSIDFromOle1Class@12
+CLSIDFromProgID@8
+CLSIDFromProgIDEx@8
+CLSIDFromString@8
+CoAddRefServerProcess@0
+CoAllowSetForegroundWindow@8
+CoBuildVersion@0
+CoCancelCall@8
+CoCopyProxy@8
+CoCreateFreeThreadedMarshaler@8
+CoCreateGuid@4
+CoCreateInstance@20
+CoCreateInstanceEx@24
+CoCreateInstanceFromApp@24
+CoCreateObjectInContext@16
+CoDeactivateObject@8
+CoDisableCallCancellation@4
+CoDisconnectContext@4
+CoDisconnectObject@8
+CoDosDateTimeToFileTime@12
+CoEnableCallCancellation@4
+CoFileTimeNow@4
+CoFileTimeToDosDateTime@12
+CoFreeAllLibraries@0
+CoFreeLibrary@4
+CoFreeUnusedLibraries@0
+CoFreeUnusedLibrariesEx@8
+CoGetActivationState@24
+CoGetApartmentID@8
+CoGetApartmentType@8
+CoGetCallContext@8
+CoGetCallState@8
+CoGetCallerTID@4
+CoGetCancelObject@12
+CoGetClassObject@20
+CoGetClassVersion@12
+CoGetComCatalog@8
+CoGetContextToken@4
+CoGetCurrentLogicalThreadId@4
+CoGetCurrentProcess@0
+CoGetDefaultContext@12
+CoGetInstanceFromFile@32
+CoGetInstanceFromIStorage@28
+CoGetInterceptor@16
+CoGetInterceptorFromTypeInfo@20
+CoGetInterfaceAndReleaseStream@12
+CoGetMalloc@8
+CoGetMarshalSizeMax@24
+CoGetModuleType@8
+CoGetObject@16
+CoGetObjectContext@8
+CoGetPSClsid@8
+CoGetProcessIdentifier@4
+CoGetStandardMarshal@24
+CoGetState@4
+CoGetStdMarshalEx@12
+CoGetSystemSecurityPermissions@8
+CoGetTreatAsClass@8
+CoImpersonateClient@0
+CoInitialize@4
+CoInitializeEx@8
+CoInitializeSecurity@36
+CoInitializeWOW@8
+CoInstall@20
+CoInvalidateRemoteMachineBindings@4
+CoIsHandlerConnected@4
+CoIsOle1Class@4
+CoLoadLibrary@8
+CoLockObjectExternal@12
+CoMarshalHresult@8
+CoMarshalInterThreadInterfaceInStream@12
+CoMarshalInterface@24
+CoPopServiceDomain@4
+CoPushServiceDomain@4
+CoQueryAuthenticationServices@8
+CoQueryClientBlanket@28
+CoQueryProxyBlanket@32
+CoQueryReleaseObject@4
+CoReactivateObject@8
+CoRegisterChannelHook@8
+CoRegisterClassObject@20
+CoRegisterInitializeSpy@8
+CoRegisterMallocSpy@4
+CoRegisterMessageFilter@8
+CoRegisterPSClsid@8
+CoRegisterSurrogate@4
+CoRegisterSurrogateEx@8
+CoReleaseMarshalData@4
+CoReleaseServerProcess@0
+CoResumeClassObjects@0
+CoRetireServer@4
+CoRevertToSelf@0
+CoRevokeClassObject@4
+CoRevokeInitializeSpy@8
+CoRevokeMallocSpy@0
+CoSetCancelObject@4
+CoSetProxyBlanket@32
+CoSetState@4
+CoSuspendClassObjects@0
+CoSwitchCallContext@8
+CoTaskMemAlloc@4
+CoTaskMemFree@4
+CoTaskMemRealloc@8
+CoTestCancel@0
+CoTreatAsClass@8
+CoUninitialize@0
+CoUnloadingWOW@4
+CoUnmarshalHresult@8
+CoUnmarshalInterface@12
+CoWaitForMultipleHandles@20
+ComPs_NdrDllCanUnloadNow@4
+ComPs_NdrDllGetClassObject@24
+ComPs_NdrDllRegisterProxy@20
+ComPs_NdrDllUnregisterProxy@20
+CreateAntiMoniker@4
+CreateBindCtx@8
+CreateClassMoniker@8
+CreateDataAdviseHolder@4
+CreateDataCache@16
+CreateErrorInfo@4
+CreateFileMoniker@8
+CreateGenericComposite@12
+CreateILockBytesOnHGlobal@12
+CreateItemMoniker@12
+CreateObjrefMoniker@8
+CreateOleAdviseHolder@4
+CreatePointerMoniker@8
+CreateStdProgressIndicator@16
+CreateStreamOnHGlobal@12
+DcomChannelSetHResult@12
+DllDebugObjectRPCHook@8
+DllGetClassObject@12
+DllGetClassObjectWOW@12
+DllRegisterServer@0
+DoDragDrop@16
+EnableHookObject@8
+FmtIdToPropStgName@8
+FreePropVariantArray@8
+GetClassFile@8
+GetConvertStg@4
+GetDocumentBitStg@4
+GetErrorInfo@8
+GetHGlobalFromILockBytes@8
+GetHGlobalFromStream@8
+GetHookInterface@4
+GetRunningObjectTable@8
+HACCEL_UserFree@8
+HACCEL_UserMarshal@12
+HACCEL_UserSize@12
+HACCEL_UserUnmarshal@12
+HBITMAP_UserFree@8
+HBITMAP_UserMarshal@12
+HBITMAP_UserSize@12
+HBITMAP_UserUnmarshal@12
+HBRUSH_UserFree@8
+HBRUSH_UserMarshal@12
+HBRUSH_UserSize@12
+HBRUSH_UserUnmarshal@12
+HDC_UserFree@8
+HDC_UserMarshal@12
+HDC_UserSize@12
+HDC_UserUnmarshal@12
+HENHMETAFILE_UserFree@8
+HENHMETAFILE_UserMarshal@12
+HENHMETAFILE_UserSize@12
+HENHMETAFILE_UserUnmarshal@12
+HGLOBAL_UserFree@8
+HGLOBAL_UserMarshal@12
+HGLOBAL_UserSize@12
+HGLOBAL_UserUnmarshal@12
+HICON_UserFree@8
+HICON_UserMarshal@12
+HICON_UserSize@12
+HICON_UserUnmarshal@12
+HMENU_UserFree@8
+HMENU_UserMarshal@12
+HMENU_UserSize@12
+HMENU_UserUnmarshal@12
+HMETAFILEPICT_UserFree@8
+HMETAFILEPICT_UserMarshal@12
+HMETAFILEPICT_UserSize@12
+HMETAFILEPICT_UserUnmarshal@12
+HMETAFILE_UserFree@8
+HMETAFILE_UserMarshal@12
+HMETAFILE_UserSize@12
+HMETAFILE_UserUnmarshal@12
+HPALETTE_UserFree@8
+HPALETTE_UserMarshal@12
+HPALETTE_UserSize@12
+HPALETTE_UserUnmarshal@12
+HWND_UserFree@8
+HWND_UserMarshal@12
+HWND_UserSize@12
+HWND_UserUnmarshal@12
+HkOleRegisterObject@16
+IIDFromString@8
+IsAccelerator@16
+IsEqualGUID@8
+IsValidIid@4
+IsValidInterface@4
+IsValidPtrIn@8
+IsValidPtrOut@8
+MkParseDisplayName@16
+MonikerCommonPrefixWith@12
+MonikerRelativePathTo@16
+;NdrProxyForwardingFunction10 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction11 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction12 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction13 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction14 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction15 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction16 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction17 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction18 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction19 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction20 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction21 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction22 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction23 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction24 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction25 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction26 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction27 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction28 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction29 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction30 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction31 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction32 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction3 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction4 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction5 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction6 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction7 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction8 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;NdrProxyForwardingFunction9 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient10 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient11 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient12 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient13 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient14 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient15 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient16 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient17 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient18 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient19 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient20 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient21 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient22 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient23 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient24 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient25 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient26 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient27 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient28 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient29 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient30 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient31 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient32 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient3 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient4 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient5 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient6 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient7 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient8 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+;ObjectStublessClient9 ; Check!!! Couldn't determine function argument count. Function doesn't return.
+OleBuildVersion@0
+OleConvertIStorageToOLESTREAM@8
+OleConvertIStorageToOLESTREAMEx@28
+OleConvertOLESTREAMToIStorage@12
+OleConvertOLESTREAMToIStorageEx@28
+OleCreate@28
+OleCreateDefaultHandler@16
+OleCreateEmbeddingHelper@24
+OleCreateEx@48
+OleCreateFromData@28
+OleCreateFromDataEx@48
+OleCreateFromFile@32
+OleCreateFromFileEx@52
+OleCreateLink@28
+OleCreateLinkEx@48
+OleCreateLinkFromData@28
+OleCreateLinkFromDataEx@48
+OleCreateLinkToFile@28
+OleCreateLinkToFileEx@48
+OleCreateMenuDescriptor@8
+OleCreateStaticFromData@28
+OleDestroyMenuDescriptor@4
+OleDoAutoConvert@8
+OleDraw@16
+OleDuplicateData@12
+OleFlushClipboard@0
+OleGetAutoConvert@8
+OleGetClipboard@4
+OleGetIconOfClass@12
+OleGetIconOfFile@8
+OleInitialize@4
+OleInitializeWOW@8
+OleIsCurrentClipboard@4
+OleIsRunning@4
+OleLoad@16
+OleLoadFromStream@12
+OleLockRunning@12
+OleMetafilePictFromIconAndLabel@16
+OleNoteObjectVisible@8
+OleQueryCreateFromData@4
+OleQueryLinkFromData@4
+OleRegEnumFormatEtc@12
+OleRegEnumVerbs@8
+OleRegGetMiscStatus@12
+OleRegGetUserType@12
+OleRun@4
+OleSave@12
+OleSaveToStream@8
+OleSetAutoConvert@8
+OleSetClipboard@4
+OleSetContainedObject@8
+OleSetMenuDescriptor@20
+OleTranslateAccelerator@12
+OleUninitialize@0
+OpenOrCreateStream@12
+ProgIDFromCLSID@8
+PropStgNameToFmtId@8
+PropSysAllocString@4
+PropSysFreeString@4
+PropVariantClear@4
+PropVariantCopy@8
+ReadClassStg@8
+ReadClassStm@8
+ReadFmtUserTypeStg@12
+ReadOleStg@24
+ReadStringStream@8
+RegisterDragDrop@8
+ReleaseStgMedium@4
+RevokeDragDrop@4
+SNB_UserFree@8
+SNB_UserMarshal@12
+SNB_UserSize@12
+SNB_UserUnmarshal@12
+STGMEDIUM_UserFree@8
+STGMEDIUM_UserMarshal@12
+STGMEDIUM_UserSize@12
+STGMEDIUM_UserUnmarshal@12
+SetConvertStg@8
+SetDocumentBitStg@8
+SetErrorInfo@8
+StgConvertPropertyToVariant@16
+StgConvertVariantToProperty@28
+StgCreateDocfile@16
+StgCreateDocfileOnILockBytes@16
+StgCreatePropSetStg@12
+StgCreatePropStg@24
+StgCreateStorageEx@32
+StgGetIFillLockBytesOnFile@8
+StgGetIFillLockBytesOnILockBytes@8
+StgIsStorageFile@4
+StgIsStorageILockBytes@4
+StgOpenAsyncDocfileOnIFillLockBytes@16
+StgOpenPropStg@20
+StgOpenStorage@24
+StgOpenStorageEx@32
+StgOpenStorageOnHandle@24
+StgOpenStorageOnILockBytes@24
+StgPropertyLengthAsVariant@16
+StgSetTimes@16
+StgCreateStorageEx@32
+StgOpenStorageEx@32
+StringFromCLSID@8
+StringFromGUID2@12
+StringFromIID@8
+UpdateDCOMSettings@0
+UpdateProcessTracing@8
+UtConvertDvtd16toDvtd32@12
+UtConvertDvtd32toDvtd16@12
+UtGetDvtd16Info@8
+UtGetDvtd32Info@8
+WdtpInterfacePointer_UserFree@4
+WdtpInterfacePointer_UserMarshal@20
+WdtpInterfacePointer_UserSize@20
+WdtpInterfacePointer_UserUnmarshal@16
+WriteClassStg@8
+WriteClassStm@8
+WriteFmtUserTypeStg@12
+WriteOleStg@16
+WriteStringStream@8
diff --git a/lib/libc/mingw/lib32/oleaut32.def b/lib/libc/mingw/lib32/oleaut32.def
@@ -0,0 +1,427 @@
+;
+; Definition file of OLEAUT32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "OLEAUT32.dll"
+EXPORTS
+SysAllocString@4
+SysReAllocString@8
+SysAllocStringLen@8
+SysReAllocStringLen@12
+SysFreeString@4
+SysStringLen@4
+VariantInit@4
+VariantClear@4
+VariantCopy@8
+VariantCopyInd@8
+VariantChangeType@16
+VariantTimeToDosDateTime@16
+DosDateTimeToVariantTime@12
+SafeArrayCreate@12
+SafeArrayDestroy@4
+SafeArrayGetDim@4
+SafeArrayGetElemsize@4
+SafeArrayGetUBound@12
+SafeArrayGetLBound@12
+SafeArrayLock@4
+SafeArrayUnlock@4
+SafeArrayAccessData@8
+SafeArrayUnaccessData@4
+SafeArrayGetElement@12
+SafeArrayPutElement@12
+SafeArrayCopy@8
+DispGetParam@20
+DispGetIDsOfNames@16
+DispInvoke@32
+CreateDispTypeInfo@12
+CreateStdDispatch@16
+RegisterActiveObject@16
+RevokeActiveObject@8
+GetActiveObject@12
+SafeArrayAllocDescriptor@8
+SafeArrayAllocData@4
+SafeArrayDestroyDescriptor@4
+SafeArrayDestroyData@4
+SafeArrayRedim@8
+SafeArrayAllocDescriptorEx@12
+SafeArrayCreateEx@16
+SafeArrayCreateVectorEx@16
+SafeArraySetRecordInfo@8
+SafeArrayGetRecordInfo@8
+VarParseNumFromStr@20
+VarNumFromParseNum@16
+VarI2FromUI1@8
+VarI2FromI4@8
+VarI2FromR4@8
+VarI2FromR8@12
+VarI2FromCy@12
+VarI2FromDate@12
+VarI2FromStr@16
+VarI2FromDisp@12
+VarI2FromBool@8
+SafeArraySetIID@8
+VarI4FromUI1@8
+VarI4FromI2@8
+VarI4FromR4@8
+VarI4FromR8@12
+VarI4FromCy@12
+VarI4FromDate@12
+VarI4FromStr@16
+VarI4FromDisp@12
+VarI4FromBool@8
+SafeArrayGetIID@8
+VarR4FromUI1@8
+VarR4FromI2@8
+VarR4FromI4@8
+VarR4FromR8@12
+VarR4FromCy@12
+VarR4FromDate@12
+VarR4FromStr@16
+VarR4FromDisp@12
+VarR4FromBool@8
+SafeArrayGetVartype@8
+VarR8FromUI1@8
+VarR8FromI2@8
+VarR8FromI4@8
+VarR8FromR4@8
+VarR8FromCy@12
+VarR8FromDate@12
+VarR8FromStr@16
+VarR8FromDisp@12
+VarR8FromBool@8
+VarFormat@24
+VarDateFromUI1@8
+VarDateFromI2@8
+VarDateFromI4@8
+VarDateFromR4@8
+VarDateFromR8@12
+VarDateFromCy@12
+VarDateFromStr@16
+VarDateFromDisp@12
+VarDateFromBool@8
+VarFormatDateTime@16
+VarCyFromUI1@8
+VarCyFromI2@8
+VarCyFromI4@8
+VarCyFromR4@8
+VarCyFromR8@12
+VarCyFromDate@12
+VarCyFromStr@16
+VarCyFromDisp@12
+VarCyFromBool@8
+VarFormatNumber@28
+VarBstrFromUI1@16
+VarBstrFromI2@16
+VarBstrFromI4@16
+VarBstrFromR4@16
+VarBstrFromR8@20
+VarBstrFromCy@20
+VarBstrFromDate@20
+VarBstrFromDisp@16
+VarBstrFromBool@16
+VarFormatPercent@28
+VarBoolFromUI1@8
+VarBoolFromI2@8
+VarBoolFromI4@8
+VarBoolFromR4@8
+VarBoolFromR8@12
+VarBoolFromDate@12
+VarBoolFromCy@12
+VarBoolFromStr@16
+VarBoolFromDisp@12
+VarFormatCurrency@28
+VarWeekdayName@20
+VarMonthName@16
+VarUI1FromI2@8
+VarUI1FromI4@8
+VarUI1FromR4@8
+VarUI1FromR8@12
+VarUI1FromCy@12
+VarUI1FromDate@12
+VarUI1FromStr@16
+VarUI1FromDisp@12
+VarUI1FromBool@8
+VarFormatFromTokens@24
+VarTokenizeFormatString@28
+VarAdd@12
+VarAnd@12
+VarDiv@12
+;DllCanUnloadNow@0
+DllGetClassObject@12
+DispCallFunc@32
+VariantChangeTypeEx@20
+SafeArrayPtrOfIndex@12
+SysStringByteLen@4
+SysAllocStringByteLen@8
+DllRegisterServer@0
+VarEqv@12
+VarIdiv@12
+VarImp@12
+VarMod@12
+VarMul@12
+VarOr@12
+VarPow@12
+VarSub@12
+CreateTypeLib@12
+LoadTypeLib@8
+LoadRegTypeLib@20
+RegisterTypeLib@12
+QueryPathOfRegTypeLib@20
+LHashValOfNameSys@12
+LHashValOfNameSysA@12
+VarXor@12
+VarAbs@8
+VarFix@8
+OaBuildVersion@0
+ClearCustData@4
+VarInt@8
+VarNeg@8
+VarNot@8
+VarRound@12
+VarCmp@16
+VarDecAdd@12
+VarDecDiv@12
+VarDecMul@12
+CreateTypeLib2@12
+VarDecSub@12
+VarDecAbs@8
+LoadTypeLibEx@12
+SystemTimeToVariantTime@8
+VariantTimeToSystemTime@12
+UnRegisterTypeLib@20
+UserBSTR_free_inst@4
+UserBSTR_free_local@4
+UserBSTR_from_local@8
+UserBSTR_to_local@8
+UserEXCEPINFO_free_inst@4
+UserEXCEPINFO_free_local@4
+UserEXCEPINFO_from_local@8
+UserEXCEPINFO_to_local@8
+UserHWND_free_inst@4
+UserHWND_free_local@4
+UserHWND_from_local@8
+UserHWND_to_local@8
+UserMSG_free_inst@4
+UserMSG_free_local@4
+UserMSG_from_local@8
+UserMSG_to_local@8
+UserVARIANT_free_inst@4
+UserVARIANT_free_local@4
+UserVARIANT_from_local@8
+UserVARIANT_to_local@8
+VarDecFix@8
+VarDecInt@8
+VarDecNeg@8
+VarDecFromUI1@8
+VarDecFromI2@8
+VarDecFromI4@8
+VarDecFromR4@8
+VarDecFromR8@12
+VarDecFromDate@12
+VarDecFromCy@12
+VarDecFromStr@16
+VarDecFromDisp@12
+VarDecFromBool@8
+GetErrorInfo@8
+SetErrorInfo@8
+CreateErrorInfo@4
+VarDecRound@12
+VarDecCmp@8
+VarI2FromI1@8
+VarI2FromUI2@8
+VarI2FromUI4@8
+VarI2FromDec@8
+VarI4FromI1@8
+VarI4FromUI2@8
+VarI4FromUI4@8
+VarI4FromDec@8
+VarR4FromI1@8
+VarR4FromUI2@8
+VarR4FromUI4@8
+VarR4FromDec@8
+VarR8FromI1@8
+VarR8FromUI2@8
+VarR8FromUI4@8
+VarR8FromDec@8
+VarDateFromI1@8
+VarDateFromUI2@8
+VarDateFromUI4@8
+VarDateFromDec@8
+VarCyFromI1@8
+VarCyFromUI2@8
+VarCyFromUI4@8
+VarCyFromDec@8
+VarBstrFromI1@16
+VarBstrFromUI2@16
+VarBstrFromUI4@16
+VarBstrFromDec@16
+VarBoolFromI1@8
+VarBoolFromUI2@8
+VarBoolFromUI4@8
+VarBoolFromDec@8
+VarUI1FromI1@8
+VarUI1FromUI2@8
+VarUI1FromUI4@8
+VarUI1FromDec@8
+VarDecFromI1@8
+VarDecFromUI2@8
+VarDecFromUI4@8
+VarI1FromUI1@8
+VarI1FromI2@8
+VarI1FromI4@8
+VarI1FromR4@8
+VarI1FromR8@12
+VarI1FromDate@12
+VarI1FromCy@12
+VarI1FromStr@16
+VarI1FromDisp@12
+VarI1FromBool@8
+VarI1FromUI2@8
+VarI1FromUI4@8
+VarI1FromDec@8
+VarUI2FromUI1@8
+VarUI2FromI2@8
+VarUI2FromI4@8
+VarUI2FromR4@8
+VarUI2FromR8@12
+VarUI2FromDate@12
+VarUI2FromCy@12
+VarUI2FromStr@16
+VarUI2FromDisp@12
+VarUI2FromBool@8
+VarUI2FromI1@8
+VarUI2FromUI4@8
+VarUI2FromDec@8
+VarUI4FromUI1@8
+VarUI4FromI2@8
+VarUI4FromI4@8
+VarUI4FromR4@8
+VarUI4FromR8@12
+VarUI4FromDate@12
+VarUI4FromCy@12
+VarUI4FromStr@16
+VarUI4FromDisp@12
+VarUI4FromBool@8
+VarUI4FromI1@8
+VarUI4FromUI2@8
+VarUI4FromDec@8
+BSTR_UserSize@12
+BSTR_UserMarshal@12
+BSTR_UserUnmarshal@12
+BSTR_UserFree@8
+VARIANT_UserSize@12
+VARIANT_UserMarshal@12
+VARIANT_UserUnmarshal@12
+VARIANT_UserFree@8
+LPSAFEARRAY_UserSize@12
+LPSAFEARRAY_UserMarshal@12
+LPSAFEARRAY_UserUnmarshal@12
+LPSAFEARRAY_UserFree@8
+LPSAFEARRAY_Size@16
+LPSAFEARRAY_Marshal@16
+LPSAFEARRAY_Unmarshal@16
+VarDecCmpR8@12
+VarCyAdd@20
+DllUnregisterServer@0
+OACreateTypeLib2@12
+VarCyMul@20
+VarCyMulI4@16
+VarCySub@20
+VarCyAbs@12
+VarCyFix@12
+VarCyInt@12
+VarCyNeg@12
+VarCyRound@16
+VarCyCmp@16
+VarCyCmpR8@16
+VarBstrCat@12
+VarBstrCmp@16
+VarR8Pow@20
+VarR4CmpR8@12
+VarR8Round@16
+VarCat@12
+VarDateFromUdateEx@16
+GetRecordInfoFromGuids@24
+GetRecordInfoFromTypeInfo@8
+SetVarConversionLocaleSetting@4
+GetVarConversionLocaleSetting@4
+SetOaNoCache
+VarCyMulI8@20
+VarDateFromUdate@12
+VarUdateFromDate@16
+GetAltMonthNames@8
+VarI8FromUI1@8
+VarI8FromI2@8
+VarI8FromR4@8
+VarI8FromR8@12
+VarI8FromCy@12
+VarI8FromDate@12
+VarI8FromStr@16
+VarI8FromDisp@12
+VarI8FromBool@8
+VarI8FromI1@8
+VarI8FromUI2@8
+VarI8FromUI4@8
+VarI8FromDec@8
+VarI2FromI8@12
+VarI2FromUI8@12
+VarI4FromI8@12
+VarI4FromUI8@12
+VarR4FromI8@12
+VarR4FromUI8@12
+VarR8FromI8@12
+VarR8FromUI8@12
+VarDateFromI8@12
+VarDateFromUI8@12
+VarCyFromI8@12
+VarCyFromUI8@12
+VarBstrFromI8@20
+VarBstrFromUI8@20
+VarBoolFromI8@12
+VarBoolFromUI8@12
+VarUI1FromI8@12
+VarUI1FromUI8@12
+VarDecFromI8@12
+VarDecFromUI8@12
+VarI1FromI8@12
+VarI1FromUI8@12
+VarUI2FromI8@12
+VarUI2FromUI8@12
+OleLoadPictureEx@32
+OleLoadPictureFileEx@32
+SafeArrayCreateVector@12
+SafeArrayCopyData@8
+VectorFromBstr@8
+BstrFromVector@8
+OleIconToCursor@8
+OleCreatePropertyFrameIndirect@4
+OleCreatePropertyFrame@44
+OleLoadPicture@20
+OleCreatePictureIndirect@16
+OleCreateFontIndirect@12
+OleTranslateColor@12
+OleLoadPictureFile@20
+OleSavePictureFile@8
+OleLoadPicturePath@24
+VarUI4FromI8@12
+VarUI4FromUI8@12
+VarI8FromUI8@12
+VarUI8FromI8@12
+VarUI8FromUI1@8
+VarUI8FromI2@8
+VarUI8FromR4@8
+VarUI8FromR8@12
+VarUI8FromCy@12
+VarUI8FromDate@12
+VarUI8FromStr@16
+VarUI8FromDisp@12
+VarUI8FromBool@8
+VarUI8FromI1@8
+VarUI8FromUI2@8
+VarUI8FromUI4@8
+VarUI8FromDec@8
+RegisterTypeLibForUser@12
+UnRegisterTypeLibForUser@20
+OaEnablePerUserTLibRegistration@0
+OACleanup@0
diff --git a/lib/libc/mingw/lib32/opengl32.def b/lib/libc/mingw/lib32/opengl32.def
@@ -0,0 +1,370 @@
+LIBRARY OPENGL32.DLL
+EXPORTS
+GlmfBeginGlsBlock@4
+GlmfCloseMetaFile@4
+GlmfEndGlsBlock@4
+GlmfEndPlayback@4
+GlmfInitPlayback@12
+GlmfPlayGlsRecord@16
+glAccum@8
+glAlphaFunc@8
+glAreTexturesResident@12
+glArrayElement@4
+glBegin@4
+glBindTexture@8
+glBitmap@28
+glBlendFunc@8
+glCallList@4
+glCallLists@12
+glClear@4
+glClearAccum@16
+glClearColor@16
+glClearDepth@8
+glClearIndex@4
+glClearStencil@4
+glClipPlane@8
+glColor3b@12
+glColor3bv@4
+glColor3d@24
+glColor3dv@4
+glColor3f@12
+glColor3fv@4
+glColor3i@12
+glColor3iv@4
+glColor3s@12
+glColor3sv@4
+glColor3ub@12
+glColor3ubv@4
+glColor3ui@12
+glColor3uiv@4
+glColor3us@12
+glColor3usv@4
+glColor4b@16
+glColor4bv@4
+glColor4d@32
+glColor4dv@4
+glColor4f@16
+glColor4fv@4
+glColor4i@16
+glColor4iv@4
+glColor4s@16
+glColor4sv@4
+glColor4ub@16
+glColor4ubv@4
+glColor4ui@16
+glColor4uiv@4
+glColor4us@16
+glColor4usv@4
+glColorMask@16
+glColorMaterial@8
+glColorPointer@16
+glCopyPixels@20
+glCopyTexImage1D@28
+glCopyTexImage2D@32
+glCopyTexSubImage1D@24
+glCopyTexSubImage2D@32
+glCullFace@4
+glDebugEntry@8
+glDeleteLists@8
+glDeleteTextures@8
+glDepthFunc@4
+glDepthMask@4
+glDepthRange@16
+glDisable@4
+glDisableClientState@4
+glDrawArrays@12
+glDrawBuffer@4
+glDrawElements@16
+glDrawPixels@20
+glEdgeFlag@4
+glEdgeFlagPointer@8
+glEdgeFlagv@4
+glEnable@4
+glEnableClientState@4
+glEnd@0
+glEndList@0
+glEvalCoord1d@8
+glEvalCoord1dv@4
+glEvalCoord1f@4
+glEvalCoord1fv@4
+glEvalCoord2d@16
+glEvalCoord2dv@4
+glEvalCoord2f@8
+glEvalCoord2fv@4
+glEvalMesh1@12
+glEvalMesh2@20
+glEvalPoint1@4
+glEvalPoint2@8
+glFeedbackBuffer@12
+glFinish@0
+glFlush@0
+glFogf@8
+glFogfv@8
+glFogi@8
+glFogiv@8
+glFrontFace@4
+glFrustum@48
+glGenLists@4
+glGenTextures@8
+glGetBooleanv@8
+glGetClipPlane@8
+glGetDoublev@8
+glGetError@0
+glGetFloatv@8
+glGetIntegerv@8
+glGetLightfv@12
+glGetLightiv@12
+glGetMapdv@12
+glGetMapfv@12
+glGetMapiv@12
+glGetMaterialfv@12
+glGetMaterialiv@12
+glGetPixelMapfv@8
+glGetPixelMapuiv@8
+glGetPixelMapusv@8
+glGetPointerv@8
+glGetPolygonStipple@4
+glGetString@4
+glGetTexEnvfv@12
+glGetTexEnviv@12
+glGetTexGendv@12
+glGetTexGenfv@12
+glGetTexGeniv@12
+glGetTexImage@20
+glGetTexLevelParameterfv@16
+glGetTexLevelParameteriv@16
+glGetTexParameterfv@12
+glGetTexParameteriv@12
+glHint@8
+glIndexMask@4
+glIndexPointer@12
+glIndexd@8
+glIndexdv@4
+glIndexf@4
+glIndexfv@4
+glIndexi@4
+glIndexiv@4
+glIndexs@4
+glIndexsv@4
+glIndexub@4
+glIndexubv@4
+glInitNames@0
+glInterleavedArrays@12
+glIsEnabled@4
+glIsList@4
+glIsTexture@4
+glLightModelf@8
+glLightModelfv@8
+glLightModeli@8
+glLightModeliv@8
+glLightf@12
+glLightfv@12
+glLighti@12
+glLightiv@12
+glLineStipple@8
+glLineWidth@4
+glListBase@4
+glLoadIdentity@0
+glLoadMatrixd@4
+glLoadMatrixf@4
+glLoadName@4
+glLogicOp@4
+glMap1d@32
+glMap1f@24
+glMap2d@56
+glMap2f@40
+glMapGrid1d@20
+glMapGrid1f@12
+glMapGrid2d@40
+glMapGrid2f@24
+glMaterialf@12
+glMaterialfv@12
+glMateriali@12
+glMaterialiv@12
+glMatrixMode@4
+glMultMatrixd@4
+glMultMatrixf@4
+glNewList@8
+glNormal3b@12
+glNormal3bv@4
+glNormal3d@24
+glNormal3dv@4
+glNormal3f@12
+glNormal3fv@4
+glNormal3i@12
+glNormal3iv@4
+glNormal3s@12
+glNormal3sv@4
+glNormalPointer@12
+glOrtho@48
+glPassThrough@4
+glPixelMapfv@12
+glPixelMapuiv@12
+glPixelMapusv@12
+glPixelStoref@8
+glPixelStorei@8
+glPixelTransferf@8
+glPixelTransferi@8
+glPixelZoom@8
+glPointSize@4
+glPolygonMode@8
+glPolygonOffset@8
+glPolygonStipple@4
+glPopAttrib@0
+glPopClientAttrib@0
+glPopMatrix@0
+glPopName@0
+glPrioritizeTextures@12
+glPushAttrib@4
+glPushClientAttrib@4
+glPushMatrix@0
+glPushName@4
+glRasterPos2d@16
+glRasterPos2dv@4
+glRasterPos2f@8
+glRasterPos2fv@4
+glRasterPos2i@8
+glRasterPos2iv@4
+glRasterPos2s@8
+glRasterPos2sv@4
+glRasterPos3d@24
+glRasterPos3dv@4
+glRasterPos3f@12
+glRasterPos3fv@4
+glRasterPos3i@12
+glRasterPos3iv@4
+glRasterPos3s@12
+glRasterPos3sv@4
+glRasterPos4d@32
+glRasterPos4dv@4
+glRasterPos4f@16
+glRasterPos4fv@4
+glRasterPos4i@16
+glRasterPos4iv@4
+glRasterPos4s@16
+glRasterPos4sv@4
+glReadBuffer@4
+glReadPixels@28
+glRectd@32
+glRectdv@8
+glRectf@16
+glRectfv@8
+glRecti@16
+glRectiv@8
+glRects@16
+glRectsv@8
+glRenderMode@4
+glRotated@32
+glRotatef@16
+glScaled@24
+glScalef@12
+glScissor@16
+glSelectBuffer@8
+glShadeModel@4
+glStencilFunc@12
+glStencilMask@4
+glStencilOp@12
+glTexCoord1d@8
+glTexCoord1dv@4
+glTexCoord1f@4
+glTexCoord1fv@4
+glTexCoord1i@4
+glTexCoord1iv@4
+glTexCoord1s@4
+glTexCoord1sv@4
+glTexCoord2d@16
+glTexCoord2dv@4
+glTexCoord2f@8
+glTexCoord2fv@4
+glTexCoord2i@8
+glTexCoord2iv@4
+glTexCoord2s@8
+glTexCoord2sv@4
+glTexCoord3d@24
+glTexCoord3dv@4
+glTexCoord3f@12
+glTexCoord3fv@4
+glTexCoord3i@12
+glTexCoord3iv@4
+glTexCoord3s@12
+glTexCoord3sv@4
+glTexCoord4d@32
+glTexCoord4dv@4
+glTexCoord4f@16
+glTexCoord4fv@4
+glTexCoord4i@16
+glTexCoord4iv@4
+glTexCoord4s@16
+glTexCoord4sv@4
+glTexCoordPointer@16
+glTexEnvf@12
+glTexEnvfv@12
+glTexEnvi@12
+glTexEnviv@12
+glTexGend@16
+glTexGendv@12
+glTexGenf@12
+glTexGenfv@12
+glTexGeni@12
+glTexGeniv@12
+glTexImage1D@32
+glTexImage2D@36
+glTexParameterf@12
+glTexParameterfv@12
+glTexParameteri@12
+glTexParameteriv@12
+glTexSubImage1D@28
+glTexSubImage2D@36
+glTranslated@24
+glTranslatef@12
+glVertex2d@16
+glVertex2dv@4
+glVertex2f@8
+glVertex2fv@4
+glVertex2i@8
+glVertex2iv@4
+glVertex2s@8
+glVertex2sv@4
+glVertex3d@24
+glVertex3dv@4
+glVertex3f@12
+glVertex3fv@4
+glVertex3i@12
+glVertex3iv@4
+glVertex3s@12
+glVertex3sv@4
+glVertex4d@32
+glVertex4dv@4
+glVertex4f@16
+glVertex4fv@4
+glVertex4i@16
+glVertex4iv@4
+glVertex4s@16
+glVertex4sv@4
+glVertexPointer@16
+glViewport@16
+wglChoosePixelFormat@8
+wglCopyContext@12
+wglCreateContext@4
+wglCreateLayerContext@8
+wglDeleteContext@4
+wglDescribeLayerPlane@20
+wglDescribePixelFormat@16
+wglGetCurrentContext@0
+wglGetCurrentDC@0
+wglGetDefaultProcAddress@4
+wglGetLayerPaletteEntries@20
+wglGetPixelFormat@4
+wglGetProcAddress@4
+wglMakeCurrent@8
+wglRealizeLayerPalette@12
+wglSetLayerPaletteEntries@20
+wglSetPixelFormat@12
+wglShareLists@8
+wglSwapBuffers@4
+wglSwapLayerBuffers@8
+wglSwapMultipleBuffers@8
+wglUseFontBitmapsA@16
+wglUseFontBitmapsW@16
+wglUseFontOutlinesA@32
+wglUseFontOutlinesW@32
diff --git a/lib/libc/mingw/lib32/rpcns4.def b/lib/libc/mingw/lib32/rpcns4.def
@@ -0,0 +1,70 @@
+;
+; Definition file of RPCNS4.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "RPCNS4.dll"
+EXPORTS
+I_GetDefaultEntrySyntax@0
+I_RpcNsGetBuffer@4
+I_RpcNsNegotiateTransferSyntax@4
+I_RpcNsRaiseException@8
+I_RpcNsSendReceive@8
+I_RpcReBindBuffer@4
+RpcIfIdVectorFree@4
+RpcNsBindingExportA@20
+RpcNsBindingExportPnPA@16
+RpcNsBindingExportPnPW@16
+RpcNsBindingExportW@20
+RpcNsBindingImportBeginA@20
+RpcNsBindingImportBeginW@20
+RpcNsBindingImportDone@4
+RpcNsBindingImportNext@8
+RpcNsBindingLookupBeginA@24
+RpcNsBindingLookupBeginW@24
+RpcNsBindingLookupDone@4
+RpcNsBindingLookupNext@8
+RpcNsBindingSelect@8
+RpcNsBindingUnexportA@16
+RpcNsBindingUnexportPnPA@16
+RpcNsBindingUnexportPnPW@16
+RpcNsBindingUnexportW@16
+RpcNsEntryExpandNameA@12
+RpcNsEntryExpandNameW@12
+RpcNsEntryObjectInqBeginA@12
+RpcNsEntryObjectInqBeginW@12
+RpcNsEntryObjectInqDone@4
+RpcNsEntryObjectInqNext@8
+RpcNsGroupDeleteA@8
+RpcNsGroupDeleteW@8
+RpcNsGroupMbrAddA@16
+RpcNsGroupMbrAddW@16
+RpcNsGroupMbrInqBeginA@16
+RpcNsGroupMbrInqBeginW@16
+RpcNsGroupMbrInqDone@4
+RpcNsGroupMbrInqNextA@8
+RpcNsGroupMbrInqNextW@8
+RpcNsGroupMbrRemoveA@16
+RpcNsGroupMbrRemoveW@16
+RpcNsMgmtBindingUnexportA@20
+RpcNsMgmtBindingUnexportW@20
+RpcNsMgmtEntryCreateA@8
+RpcNsMgmtEntryCreateW@8
+RpcNsMgmtEntryDeleteA@8
+RpcNsMgmtEntryDeleteW@8
+RpcNsMgmtEntryInqIfIdsA@12
+RpcNsMgmtEntryInqIfIdsW@12
+RpcNsMgmtHandleSetExpAge@8
+RpcNsMgmtInqExpAge@4
+RpcNsMgmtSetExpAge@4
+RpcNsProfileDeleteA@8
+RpcNsProfileDeleteW@8
+RpcNsProfileEltAddA@28
+RpcNsProfileEltAddW@28
+RpcNsProfileEltInqBeginA@32
+RpcNsProfileEltInqBeginW@32
+RpcNsProfileEltInqDone@4
+RpcNsProfileEltInqNextA@20
+RpcNsProfileEltInqNextW@20
+RpcNsProfileEltRemoveA@20
+RpcNsProfileEltRemoveW@20
diff --git a/lib/libc/mingw/lib32/rpcrt4.def b/lib/libc/mingw/lib32/rpcrt4.def
@@ -0,0 +1,568 @@
+;
+; Definition file of RPCRT4.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "RPCRT4.dll"
+EXPORTS
+I_RpcFwThisIsTheManager@0
+I_RpcInitHttpImports@4
+I_RpcOpenClientProcess@12
+I_RpcServerTurnOnOffKeepalives@16
+I_RpcVerifierCorruptionExpected@0
+NdrFullPointerFree@8
+NdrFullPointerInsertRefId@12
+NdrFullPointerQueryPointer@16
+NdrFullPointerQueryRefId@16
+NdrGetBaseInterfaceFromStub@12
+RpcCertMatchPrincipalName@8
+CStdStubBuffer_AddRef@4
+CStdStubBuffer_Connect@8
+CStdStubBuffer_CountRefs@4
+CStdStubBuffer_DebugServerQueryInterface@8
+CStdStubBuffer_DebugServerRelease@8
+CStdStubBuffer_Disconnect@4
+CStdStubBuffer_Invoke@12
+CStdStubBuffer_IsIIDSupported@8
+CStdStubBuffer_QueryInterface@12
+CreateProxyFromTypeInfo@20
+CreateStubFromTypeInfo@16
+DceErrorInqTextA@8
+DceErrorInqTextW@8
+DllGetClassObject@12
+DllRegisterServer@0
+IUnknown_AddRef_Proxy@4
+IUnknown_QueryInterface_Proxy@12
+IUnknown_Release_Proxy@4
+I_RpcAllocate@4
+I_RpcAsyncAbortCall@8
+I_RpcAsyncSetHandle@8
+I_RpcBCacheAllocate@4
+I_RpcBCacheFree@4
+I_RpcBindingCopy@8
+I_RpcBindingInqDynamicEndpoint@8
+I_RpcBindingCreateNP@16
+I_RpcBindingHandleToAsyncHandle@8
+I_RpcBindingInqDynamicEndpoint@8
+I_RpcBindingInqDynamicEndpointA@8
+I_RpcBindingInqDynamicEndpointW@8
+I_RpcBindingInqLocalClientPID@8
+I_RpcBindingInqMarshalledTargetInfo@12
+I_RpcBindingInqSecurityContext@8
+I_RpcBindingInqSecurityContextKeyInfo@8
+I_RpcBindingInqTransportType@8
+I_RpcBindingInqWireIdForSnego@8
+I_RpcBindingIsClientLocal@8
+I_RpcBindingToStaticStringBindingW@8
+I_RpcClearMutex@4
+I_RpcConnectionInqSockBuffSize2@4
+I_RpcCompleteAndFree@12
+I_RpcConnectionInqSockBuffSize@8
+I_RpcConnectionSetSockBuffSize@8
+I_RpcDeleteMutex@4
+I_RpcEnableWmiTrace@8
+I_RpcExceptionFilter@4
+I_RpcFilterDCOMActivation@20
+I_RpcFree@4
+I_RpcFreeBuffer@4
+I_RpcGetAssociationContext@4
+I_RpcFreePipeBuffer@4
+I_RpcGetBuffer@4
+I_RpcGetBufferWithObject@8
+I_RpcGetCurrentCallHandle@0
+I_RpcIOAlerted@4
+I_RpcGetExtendedError@0
+I_RpcGetPortAllocationData@4
+I_RpcIfInqTransferSyntaxes@16
+I_RpcLogEvent@28
+I_RpcMapWin32Status@4
+I_RpcMonitorAssociation@12
+I_RpcMarshalBindingHandleAndInterfaceForNDF@24
+I_RpcNDRCGetWireRepresentation@8
+I_RpcNDRSContextEmergencyCleanup@8
+I_RpcNegotiateTransferSyntax@4
+I_RpcNsBindingSetEntryName@12
+I_RpcNsBindingSetEntryNameA@12
+I_RpcNsBindingSetEntryNameW@12
+I_RpcNsInterfaceExported@12
+I_RpcNsInterfaceUnexported@12
+I_RpcParseSecurity@8
+I_RpcPauseExecution@4
+I_RpcReallocPipeBuffer@8
+I_RpcReceive@8
+I_RpcRecordCalloutFailure@12
+I_RpcRequestMutex@4
+I_RpcSNCHOption@8
+I_RpcSend@4
+I_RpcSendReceive@4
+I_RpcServerAllocateIpPort@8
+I_RpcServerCheckClientRestriction@4
+I_RpcServerInqAddressChangeFn@0
+I_RpcServerInqLocalConnAddress@16
+I_RpcServerInqRemoteConnAddress@16
+I_RpcServerInqTransportType@4
+I_RpcServerIsClientDisconnected@8
+I_RpcServerRegisterForwardFunction@4
+I_RpcSetAssociationContext@4
+I_RpcServerSetAddressChangeFn@4
+I_RpcServerStartService@12
+I_RpcServerUseProtseq2A@20
+I_RpcServerUseProtseq2W@20
+I_RpcServerUseProtseqEp2A@24
+I_RpcServerUseProtseqEp2W@24
+I_RpcSessionStrictContextHandle@0
+I_RpcSetDCOMAppId@4
+I_RpcSsDontSerializeContext@0
+I_RpcStopMonitorAssociation@4
+I_RpcTransClientMaxFrag@4
+I_RpcTransClientReallocBuffer@16
+I_RpcTransServerFindConnection@8
+I_RpcTransServerFreeBuffer@8
+I_RpcTransServerMaxFrag@4
+I_RpcTransServerNewConnection@12
+I_RpcTransServerProtectThread@0
+I_RpcTransServerReallocBuffer@16
+I_RpcTransServerReceiveDirectReady@4
+I_RpcTransServerUnprotectThread@4
+I_RpcSystemFunction001@12
+I_RpcTransConnectionAllocatePacket@8
+I_RpcTransConnectionFreePacket@8
+I_RpcTransConnectionReallocPacket@16
+I_RpcTransDatagramAllocate2@16
+I_RpcTransDatagramAllocate@16
+I_RpcTransDatagramFree@8
+I_RpcTransGetThreadEvent@0
+I_RpcTransGetThreadEventThreadOptional@0
+I_RpcTransIoCancelled@8
+I_RpcTransServerNewConnection@4
+I_RpcTurnOnEEInfoPropagation@0
+I_UuidCreate@4
+MIDL_wchar_strcpy@8
+MIDL_wchar_strlen@4
+MesBufferHandleReset@24
+MesDecodeBufferHandleCreate@12
+MesDecodeIncrementalHandleCreate@12
+MesEncodeDynBufferHandleCreate@12
+MesEncodeFixedBufferHandleCreate@16
+MesEncodeIncrementalHandleCreate@16
+MesHandleFree@4
+MesIncrementalHandleReset@24
+MesInqProcEncodingId@12
+NDRCContextBinding@4
+NDRCContextMarshall@8
+NDRCContextUnmarshall@16
+NDRSContextMarshall2@24
+NDRSContextMarshall@12
+NDRSContextMarshallEx@16
+NDRSContextUnmarshall2@20
+NDRSContextUnmarshall@8
+NDRSContextUnmarshallEx@12
+NDRcopy@12
+NdrAllocate@8
+NdrAsyncClientCall@0
+NdrAsyncServerCall@4
+NdrByteCountPointerBufferSize@12
+NdrByteCountPointerFree@12
+NdrByteCountPointerMarshall@12
+NdrByteCountPointerUnmarshall@16
+NdrCStdStubBuffer2_Release@8
+NdrCStdStubBuffer_Release@8
+NdrClearOutParameters@12
+NdrClientCall
+NdrClientCall2
+NdrClientContextMarshall@12
+NdrClientContextUnmarshall@12
+NdrClientInitialize@16
+NdrClientInitializeNew@16
+NdrComplexArrayBufferSize@12
+NdrComplexArrayFree@12
+NdrComplexArrayMarshall@12
+NdrComplexArrayMemorySize@8
+NdrComplexArrayUnmarshall@16
+NdrComplexStructBufferSize@12
+NdrComplexStructFree@12
+NdrComplexStructMarshall@12
+NdrComplexStructMemorySize@8
+NdrComplexStructUnmarshall@16
+NdrConformantArrayBufferSize@12
+NdrConformantArrayFree@12
+NdrConformantArrayMarshall@12
+NdrConformantArrayMemorySize@8
+NdrConformantArrayUnmarshall@16
+NdrConformantStringBufferSize@12
+NdrConformantStringMarshall@12
+NdrConformantStringMemorySize@8
+NdrConformantStringUnmarshall@16
+NdrConformantStructBufferSize@12
+NdrConformantStructFree@12
+NdrConformantStructMarshall@12
+NdrConformantStructMemorySize@8
+NdrConformantStructUnmarshall@16
+NdrConformantVaryingArrayBufferSize@12
+NdrConformantVaryingArrayFree@12
+NdrConformantVaryingArrayMarshall@12
+NdrConformantVaryingArrayMemorySize@8
+NdrConformantVaryingArrayUnmarshall@16
+NdrConformantVaryingStructBufferSize@12
+NdrConformantVaryingStructFree@12
+NdrConformantVaryingStructMarshall@12
+NdrConformantVaryingStructMemorySize@8
+NdrConformantVaryingStructUnmarshall@16
+NdrContextHandleInitialize@8
+NdrContextHandleSize@12
+NdrConvert2@12
+NdrConvert@8
+NdrCorrelationFree@4
+NdrCorrelationInitialize@16
+NdrCorrelationPass@4
+NdrCreateServerInterfaceFromStub@8
+NdrDcomAsyncClientCall@0
+NdrDcomAsyncStubCall@16
+NdrDllCanUnloadNow@4
+NdrDllGetClassObject@24
+NdrDllRegisterProxy@12
+NdrDllUnregisterProxy@12
+NdrEncapsulatedUnionBufferSize@12
+NdrEncapsulatedUnionFree@12
+NdrEncapsulatedUnionMarshall@12
+NdrEncapsulatedUnionMemorySize@8
+NdrEncapsulatedUnionUnmarshall@16
+NdrFixedArrayBufferSize@12
+NdrFixedArrayFree@12
+NdrFixedArrayMarshall@12
+NdrFixedArrayMemorySize@8
+NdrFixedArrayUnmarshall@16
+NdrFreeBuffer@4
+NdrFullPointerFree@8
+NdrFullPointerInsertRefId@12
+NdrFullPointerQueryPointer@16
+NdrFullPointerQueryRefId@16
+NdrFullPointerInsertRefId@12
+NdrFullPointerQueryPointer@16
+NdrFullPointerQueryRefId@16
+NdrFullPointerXlatFree@4
+NdrFullPointerXlatInit@8
+NdrGetBuffer@12
+NdrHardStructBufferSize@12
+NdrHardStructFree@12
+NdrHardStructMarshall@12
+NdrHardStructMemorySize@8
+NdrHardStructUnmarshall@16
+NdrGetDcomProtocolVersion@8
+NdrGetSimpleTypeBufferAlignment@4
+NdrGetSimpleTypeBufferSize@4
+NdrGetSimpleTypeMemorySize@4
+NdrGetTypeFlags@4
+NdrGetUserMarshalInfo@12
+NdrInterfacePointerBufferSize@12
+NdrInterfacePointerFree@12
+NdrInterfacePointerMarshall@12
+NdrInterfacePointerMemorySize@8
+NdrInterfacePointerUnmarshall@16
+NdrMapCommAndFaultStatus@16
+NdrMesProcEncodeDecode
+NdrMesProcEncodeDecode2
+NdrMesSimpleTypeAlignSize@4
+NdrMesSimpleTypeDecode@12
+NdrMesSimpleTypeEncode@16
+NdrMesTypeAlignSize2@20
+NdrMesTypeAlignSize@16
+NdrMesTypeDecode2@20
+NdrMesTypeDecode@16
+NdrMesTypeEncode2@20
+NdrMesTypeEncode@16
+NdrMesTypeFree2@20
+NdrNonConformantStringBufferSize@12
+NdrNonConformantStringMarshall@12
+NdrNonConformantStringMemorySize@8
+NdrNonConformantStringUnmarshall@16
+NdrNonEncapsulatedUnionBufferSize@12
+NdrNonEncapsulatedUnionFree@12
+NdrNonEncapsulatedUnionMarshall@12
+NdrNonEncapsulatedUnionMemorySize@8
+NdrNonEncapsulatedUnionUnmarshall@16
+NdrNsGetBuffer@12
+NdrNsSendReceive@12
+NdrOleAllocate@4
+NdrOleFree@4
+NdrOutInit@12
+NdrPartialIgnoreClientBufferSize@8
+NdrPartialIgnoreClientMarshall@8
+NdrPartialIgnoreServerInitialize@12
+NdrPartialIgnoreServerUnmarshall@8
+NdrPointerBufferSize@12
+NdrPointerFree@12
+NdrPointerMarshall@12
+NdrPointerMemorySize@8
+NdrPointerUnmarshall@16
+NdrProxyErrorHandler@4
+NdrProxyFreeBuffer@8
+NdrProxyGetBuffer@8
+NdrProxyInitialize@20
+NdrProxySendReceive@8
+NdrRangeUnmarshall@16
+NdrRpcSmClientAllocate@4
+NdrRpcSmClientFree@4
+NdrRpcSmSetClientToOsf@4
+NdrRpcSsDefaultAllocate@4
+NdrRpcSsDefaultFree@4
+NdrRpcSsDisableAllocate@4
+NdrRpcSsEnableAllocate@4
+NdrSendReceive@8
+NdrServerCall2@4
+NdrServerCall@4
+NdrServerContextMarshall@12
+NdrServerContextNewMarshall@16
+NdrServerContextNewUnmarshall@8
+NdrServerContextUnmarshall@4
+NdrServerInitialize@12
+NdrServerInitializeMarshall@8
+NdrServerInitializeNew@12
+NdrServerInitializePartial@16
+NdrServerInitializeUnmarshall@12
+NdrServerMarshall@16
+NdrServerUnmarshall@24
+NdrSimpleStructBufferSize@12
+NdrSimpleStructFree@12
+NdrSimpleStructMarshall@12
+NdrSimpleStructMemorySize@8
+NdrSimpleStructUnmarshall@16
+NdrSimpleTypeMarshall@12
+NdrSimpleTypeUnmarshall@12
+NdrStubCall2@16
+NdrStubCall@16
+NdrStubForwardingFunction@16
+NdrStubGetBuffer@12
+NdrStubInitialize@16
+NdrStubInitializeMarshall@12
+NdrTypeFlags@60029
+NdrTypeFree@12
+NdrTypeMarshall@12
+NdrTypeSize@12
+NdrTypeUnmarshall@16
+NdrUnmarshallBasetypeInline@12
+NdrUserMarshalBufferSize@12
+NdrUserMarshalFree@12
+NdrUserMarshalMarshall@12
+NdrUserMarshalMemorySize@8
+NdrUserMarshalSimpleTypeConvert@12
+NdrUserMarshalUnmarshall@16
+NdrVaryingArrayBufferSize@12
+NdrVaryingArrayFree@12
+NdrVaryingArrayMarshall@12
+NdrVaryingArrayMemorySize@8
+NdrVaryingArrayUnmarshall@16
+NdrXmitOrRepAsBufferSize@12
+NdrXmitOrRepAsFree@12
+NdrXmitOrRepAsMarshall@12
+NdrXmitOrRepAsMemorySize@8
+NdrXmitOrRepAsUnmarshall@16
+NdrpCreateProxy@16
+NdrpCreateStub@12
+NdrpGetProcFormatString@24
+NdrpGetTypeFormatString@12
+NdrpGetTypeGenCookie@4
+NdrpMemoryIncrement@12
+NdrpReleaseTypeFormatString@4
+NdrpReleaseTypeGenCookie@4
+NdrpVarVtOfTypeDesc@12
+RpcAsyncAbortCall@8
+RpcAsyncCancelCall@8
+RpcAsyncCompleteCall@8
+RpcAsyncGetCallStatus@4
+RpcAsyncInitializeHandle@8
+RpcAsyncRegisterInfo@4
+RpcBindingBind@12
+RpcBindingCopy@8
+RpcBindingCreateA@16
+RpcBindingCreateW@16
+RpcBindingFree@4
+RpcBindingFromStringBindingA@8
+RpcBindingFromStringBindingW@8
+RpcBindingInqAuthClientA@24
+RpcBindingInqAuthClientExA@28
+RpcBindingInqAuthClientExW@28
+RpcBindingInqAuthClientW@24
+RpcBindingInqAuthInfoA@24
+RpcBindingInqAuthInfoExA@32
+RpcBindingInqAuthInfoExW@32
+RpcBindingInqAuthInfoW@24
+RpcBindingInqObject@8
+RpcBindingInqOption@12
+RpcBindingReset@4
+RpcBindingServerFromClient@8
+RpcBindingSetAuthInfoA@24
+RpcBindingSetAuthInfoExA@28
+RpcBindingSetAuthInfoExW@28
+RpcBindingSetAuthInfoW@24
+RpcBindingSetObject@8
+RpcBindingSetOption@12
+RpcBindingToStringBindingA@8
+RpcBindingToStringBindingW@8
+RpcBindingUnbind@4
+RpcBindingVectorFree@4
+RpcCancelThread@4
+RpcCancelThreadEx@8
+RpcCertGeneratePrincipalNameA@12
+RpcCertGeneratePrincipalNameW@12
+RpcEpRegisterA@16
+RpcEpRegisterNoReplaceA@16
+RpcEpRegisterNoReplaceW@16
+RpcEpRegisterW@16
+RpcEpResolveBinding@8
+RpcEpUnregister@12
+RpcErrorAddRecord@4
+RpcErrorClearInformation@0
+RpcErrorEndEnumeration@4
+RpcErrorGetNextRecord@12
+RpcErrorGetNumberOfRecords@8
+RpcErrorLoadErrorInfo@12
+RpcErrorResetEnumeration@4
+RpcErrorSaveErrorInfo@12
+RpcErrorStartEnumeration@4
+RpcExceptionFilter@4
+RpcFreeAuthorizationContext@4
+RpcGetAuthorizationContextForClient@36
+RpcIfIdVectorFree@4
+RpcIfInqId@8
+RpcImpersonateClient@4
+RpcMgmtEnableIdleCleanup@0
+RpcMgmtEpEltInqBegin@24
+RpcMgmtEpEltInqDone@4
+RpcMgmtEpEltInqNextA@20
+RpcMgmtEpEltInqNextW@20
+RpcMgmtEpUnregister@16
+RpcMgmtInqComTimeout@8
+RpcMgmtInqDefaultProtectLevel@8
+RpcMgmtInqIfIds@8
+RpcMgmtInqServerPrincNameA@12
+RpcMgmtInqServerPrincNameW@12
+RpcMgmtInqStats@8
+RpcMgmtIsServerListening@4
+RpcMgmtSetAuthorizationFn@4
+RpcMgmtSetCancelTimeout@4
+RpcMgmtSetComTimeout@8
+RpcMgmtSetServerStackSize@4
+RpcMgmtStatsVectorFree@4
+RpcMgmtStopServerListening@4
+RpcMgmtWaitServerListen@0
+RpcNetworkInqProtseqsA@4
+RpcNetworkInqProtseqsW@4
+RpcNetworkIsProtseqValidA@4
+RpcNetworkIsProtseqValidW@4
+RpcNsBindingInqEntryNameA@12
+RpcNsBindingInqEntryNameW@12
+RpcObjectInqType@8
+RpcObjectSetInqFn@4
+RpcObjectSetType@8
+RpcProtseqVectorFreeA@4
+RpcProtseqVectorFreeW@4
+RpcRaiseException@4
+RpcRevertToSelf@0
+RpcRevertToSelfEx@4
+RpcServerCompleteSecurityCallback@8
+RpcServerInqBindingHandle@4
+RpcServerInqBindings@4
+RpcServerInqCallAttributesA@8
+RpcServerInqCallAttributesW@8
+RpcServerInqDefaultPrincNameA@8
+RpcServerInqDefaultPrincNameW@8
+RpcServerInqIf@12
+RpcServerListen@12
+RpcServerRegisterAuthInfoA@16
+RpcServerRegisterAuthInfoW@16
+RpcServerRegisterIf2@28
+RpcServerRegisterIf@12
+RpcServerRegisterIfEx@24
+RpcServerSubscribeForNotification@16
+RpcServerTestCancel@4
+RpcServerUnregisterIf@12
+RpcServerUnregisterIfEx@12
+RpcServerUnsubscribeForNotification@12
+RpcServerUseAllProtseqs@8
+RpcServerUseAllProtseqsEx@12
+RpcServerUseAllProtseqsIf@12
+RpcServerUseAllProtseqsIfEx@16
+RpcServerUseProtseqA@12
+RpcServerUseProtseqEpA@16
+RpcServerUseProtseqEpExA@20
+RpcServerUseProtseqEpExW@20
+RpcServerUseProtseqEpW@16
+RpcServerUseProtseqExA@16
+RpcServerUseProtseqExW@16
+RpcServerUseProtseqIfA@16
+RpcServerUseProtseqIfExA@20
+RpcServerUseProtseqIfExW@20
+RpcServerUseProtseqIfW@16
+RpcServerUseProtseqW@12
+RpcServerYield@0
+RpcSmAllocate@8
+RpcSmClientFree@4
+RpcSmDestroyClientContext@4
+RpcSmDisableAllocate@0
+RpcSmEnableAllocate@0
+RpcSmFree@4
+RpcSmGetThreadHandle@4
+RpcSmSetClientAllocFree@8
+RpcSmSetThreadHandle@4
+RpcSmSwapClientAllocFree@16
+RpcSsAllocate@4
+RpcSsContextLockExclusive@8
+RpcSsContextLockShared@8
+RpcSsDestroyClientContext@4
+RpcSsDisableAllocate@0
+RpcSsDontSerializeContext@0
+RpcSsEnableAllocate@0
+RpcSsFree@4
+RpcSsGetContextBinding@8
+RpcSsGetThreadHandle@0
+RpcSsSetClientAllocFree@8
+RpcSsSetThreadHandle@4
+RpcSsSwapClientAllocFree@16
+RpcStringBindingComposeA@24
+RpcStringBindingComposeW@24
+RpcStringBindingParseA@24
+RpcStringBindingParseW@24
+RpcStringFreeA@4
+RpcStringFreeW@4
+RpcTestCancel@0
+RpcUserFree@8
+SimpleTypeAlignment@1526
+SimpleTypeBufferSize@1526
+SimpleTypeMemorySize@1526
+TowerConstruct@24
+TowerExplode@24
+UuidCompare@12
+UuidCreate@4
+UuidCreateNil@4
+UuidCreateSequential@4
+UuidEqual@12
+UuidFromStringA@8
+UuidFromStringW@8
+UuidHash@8
+UuidIsNil@8
+UuidToStringA@8
+UuidToStringW@8
+char_array_from_ndr@16
+char_from_ndr@8
+data_from_ndr@16
+data_into_ndr@16
+data_size_ndr@16
+double_array_from_ndr@16
+double_from_ndr@8
+enum_from_ndr@8
+float_array_from_ndr@16
+float_from_ndr@8
+long_array_from_ndr@16
+long_from_ndr@8
+long_from_ndr_temp@12
+pfnFreeRoutines DATA
+pfnMarshallRoutines DATA
+pfnSizeRoutines DATA
+pfnUnmarshallRoutines DATA
+short_array_from_ndr@16
+short_from_ndr@8
+short_from_ndr_temp@12
+tree_into_ndr@16
+tree_peek_ndr@16
+tree_size_ndr@16
diff --git a/lib/libc/mingw/lib32/shell32.def b/lib/libc/mingw/lib32/shell32.def
@@ -0,0 +1,356 @@
+;
+; Definition file of SHELL32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "SHELL32.dll"
+EXPORTS
+SHChangeNotifyRegister@24
+SHDefExtractIconA@24
+SHChangeNotifyDeregister@4
+SHDefExtractIconW@24
+PifMgr_OpenProperties@16
+PifMgr_GetProperties@20
+PifMgr_SetProperties@20
+PifMgr_CloseProperties@8
+SHStartNetConnectionDialogW@12
+ILFindLastID@4
+ILRemoveLastID@4
+ILClone@4
+ILCloneFirst@4
+ILIsEqual@8
+DAD_DragEnterEx2@16
+ILIsParent@12
+ILFindChild@8
+ILCombine@8
+ILSaveToStream@8
+SHILCreateFromPath@12
+IsLFNDriveA@4
+IsLFNDriveW@4
+PathIsExe@4
+PathMakeUniqueName@20
+PathQualify@4
+PathResolve@12
+RestartDialog@12
+PickIconDlg@16
+GetFileNameFromBrowse@28
+DriveType@4
+IsNetDrive@4
+Shell_MergeMenus@24
+SHGetSetSettings@12
+Shell_GetImageLists@8
+Shell_GetCachedImageIndex@12
+SHShellFolderView_Message@12
+SHCreateStdEnumFmtEtc@12
+PathYetAnotherMakeUniqueName@16
+SHMapPIDLToSystemImageListIndex@12
+SHOpenPropSheetW@28
+OpenAs_RunDLL@16
+CIDLData_CreateFromIDArray@16
+OpenRegStream@16
+SHDoDragDrop@20
+SHCloneSpecialIDList@12
+SHFindFiles@8
+PathGetShortPath@4
+SHGetRealIDL@12
+SHRestricted@4
+SHCoCreateInstance@20
+SignalFileOpen@4
+IsLFNDrive@4
+OpenAs_RunDLLA@16
+DAD_AutoScroll@12
+DAD_DragEnterEx@12
+DAD_DragLeave@0
+OpenAs_RunDLLW@16
+DAD_DragMove@8
+PrepareDiscForBurnRunDllW@16
+DAD_SetDragImage@8
+DAD_ShowDragImage@4
+PrintersGetCommand_RunDLL@16
+PrintersGetCommand_RunDLLA@16
+SHCLSIDFromString@8
+SHFind_InitMenuPopup@16
+PrintersGetCommand_RunDLLW@16
+ILGetSize@4
+ILGetNext@4
+ILAppendID@12
+ILFree@4
+ILCreateFromPath@4
+SHSimpleIDListFromPath@4
+Win32DeleteFile@4
+SHCreateDirectory@8
+SHAddFromPropSheetExtArray@12
+SHCreatePropSheetExtArray@12
+SHDestroyPropSheetExtArray@4
+SHReplaceFromPropSheetExtArray@16
+PathCleanupSpec@8
+SHValidateUNC@12
+SHCreateShellFolderViewEx@8
+SHSetInstanceExplorer@4
+SHObjectProperties@16
+SHGetNewLinkInfoA@20
+SHGetNewLinkInfoW@20
+ShellMessageBoxW
+ShellMessageBoxA
+ILCreateFromPathA@4
+ILCreateFromPathW@4
+SHUpdateImageA@16
+SHUpdateImageW@16
+SHHandleUpdateImage@4
+SHFree@4
+SHAlloc@4
+SHHelpShortcuts_RunDLL@16
+SHHelpShortcuts_RunDLLA@16
+SHHelpShortcuts_RunDLLW@16
+AppCompat_RunDLLW@16
+AssocCreateForClasses@16
+AssocGetDetailsOfPropKey@20
+CheckEscapesW@8
+SHSetFolderPathA@16
+SHSetFolderPathW@16
+CommandLineToArgvW@8
+PathIsSlowW@8
+PathIsSlowA@8
+SHTestTokenMembership@8
+Control_RunDLL@16
+SHCreateShellFolderView@8
+Control_RunDLLA@16
+Control_RunDLLAsUserW@16
+Control_RunDLLW@16
+DllCanUnloadNow@0
+DllGetClassObject@12
+DllGetVersion@4
+DllInstall@8
+DllRegisterServer@0
+DllUnregisterServer@0
+DoEnvironmentSubstA@8
+DoEnvironmentSubstW@8
+DragAcceptFiles@8
+DragFinish@4
+DragQueryFile@16
+DragQueryFileA@16
+DragQueryFileAorW@24
+DragQueryFileW@16
+DragQueryPoint@8
+DuplicateIcon@8
+ExtractAssociatedIconA@12
+ExtractAssociatedIconExA@16
+ExtractAssociatedIconExW@16
+ExtractAssociatedIconW@12
+ExtractIconA@12
+ExtractIconEx@20
+ExtractIconExA@20
+ExtractIconExW@20
+ExtractIconW@12
+FindExecutableA@12
+FindExecutableW@12
+FreeIconList@8
+GetCurrentProcessExplicitAppUserModelID@4
+InitNetworkAddressControl@0
+InternalExtractIconListA@12
+InternalExtractIconListW@12
+LaunchMSHelp_RunDLLW@16
+Options_RunDLL@16
+Options_RunDLLA@16
+Options_RunDLLW@16
+RealShellExecuteA@40
+RealShellExecuteExA@44
+RealShellExecuteExW@44
+RealShellExecuteW@40
+RegenerateUserEnvironment@8
+RunAsNewUser_RunDLLW@16
+SHAddDefaultPropertiesByExt@8
+SHAddToRecentDocs@8
+SHAppBarMessage@8
+SHAssocEnumHandlers@12
+SHAssocEnumHandlersForProtocolByApplication@12
+SHBindToFolderIDListParent@20
+SHBindToFolderIDListParentEx@24
+SHBindToObject@20
+SHBindToParent@16
+SHBrowseForFolder@4
+SHBrowseForFolderA@4
+SHBrowseForFolderW@4
+SHChangeNotify@16
+SHChangeNotifyRegisterThread@4
+SHChangeNotifySuspendResume@16
+SHCreateAssociationRegistration@8
+SHCreateDataObject@24
+SHCreateDefaultContextMenu@12
+SHCreateDefaultExtractIcon@8
+SHCreateDefaultPropertiesOp@8
+SHCreateDirectoryExA@12
+SHCreateDirectoryExW@12
+SHCreateItemFromIDList@12
+SHCreateItemFromParsingName@16
+SHCreateItemFromRelativeName@20
+SHCreateItemInKnownFolder@20
+SHCreateItemWithParent@20
+SHCreateLocalServerRunDll@16
+SHCreateProcessAsUserW@4
+SHCreateQueryCancelAutoPlayMoniker@4
+SHCreateShellItem@16
+SHCreateShellItemArray@20
+SHCreateShellItemArrayFromDataObject@12
+SHCreateShellItemArrayFromIDLists@12
+SHCreateShellItemArrayFromShellItem@12
+SHEmptyRecycleBinA@12
+SHEmptyRecycleBinW@12
+SHEnableServiceObject@8
+SHEnumerateUnreadMailAccountsW@16
+SHEvaluateSystemCommandTemplate@16
+SHExtractIconsW@32
+SHFileOperation@4
+SHFileOperationA@4
+SHFileOperationW@4
+SHFormatDrive@16
+SHFreeNameMappings@4
+SHGetDataFromIDListA@20
+SHGetDataFromIDListW@20
+SHGetDesktopFolder@4
+SHGetDiskFreeSpaceA@16
+SHGetDiskFreeSpaceExA@16
+SHGetDiskFreeSpaceExW@16
+SHGetDriveMedia@8
+SHGetFileInfo@20
+SHGetFileInfoA@20
+SHGetFileInfoW@20
+SHGetFolderLocation@20
+SHGetFolderPathA@20
+SHGetFolderPathAndSubDirA@24
+SHGetFolderPathAndSubDirW@24
+SHGetFolderPathEx@20
+SHGetFolderPathW@20
+SheShortenPathW@8
+SheShortenPathA@8
+SHGetIDListFromObject@8
+SHGetIconOverlayIndexA@8
+SHGetIconOverlayIndexW@8
+SHGetInstanceExplorer@4
+SHGetItemFromDataObject@16
+SHGetItemFromObject@12
+SHGetKnownFolderIDList@16
+SHGetKnownFolderItem@20
+SHGetKnownFolderPath@16
+SHGetLocalizedName@16
+SHGetMalloc@4
+SHGetNameFromIDList@12
+SHGetNewLinkInfo@20
+SHGetPathFromIDList@8
+SHGetPathFromIDListA@8
+SHGetPathFromIDListEx@16
+SHGetPathFromIDListW@8
+SHGetPropertyStoreForWindow@12
+SHGetPropertyStoreFromIDList@16
+SHGetPropertyStoreFromParsingName@20
+SHGetSettings@8
+SHGetSpecialFolderLocation@12
+SHGetSpecialFolderPathA@16
+SHGetSpecialFolderPathW@16
+SHGetStockIconInfo@12
+SHGetTemporaryPropertyForItem@12
+SHGetUnreadMailCountW@24
+SHInvokePrinterCommandA@20
+SHInvokePrinterCommandW@20
+SHIsFileAvailableOffline@8
+SHLoadInProc@4
+SHLoadNonloadedIconOverlayIdentifiers@0
+SHOpenFolderAndSelectItems@16
+SHOpenWithDialog@8
+SHParseDisplayName@20
+SHPathPrepareForWriteA@16
+SHPathPrepareForWriteW@16
+SHQueryRecycleBinA@8
+SHQueryRecycleBinW@8
+SHQueryUserNotificationState@4
+SHRemoveLocalizedName@4
+SHResolveLibrary@4
+SHSetDefaultProperties@16
+SHSetKnownFolderPath@16
+SHSetLocalizedName@12
+SHSetTemporaryPropertyForItem@12
+SHSetUnreadMailCountW@12
+SHShowManageLibraryUI@20
+SHUpdateRecycleBinIcon@0
+SetCurrentProcessExplicitAppUserModelID@4
+SheChangeDirA@4
+SheChangeDirExW@4
+SheChangeDirExA@4
+SheGetDirA@8
+SheSetCurDrive@4
+SheRemoveQuotesW@4
+SheRemoveQuotesA@4
+ShellAboutA@16
+ShellAboutW@16
+ShellExec_RunDLL@16
+ShellExec_RunDLLA@16
+ShellExec_RunDLLW@16
+ShellExecuteA@24
+ShellExecuteEx@4
+ShellExecuteExA@4
+ShellExecuteExW@4
+ShellExecuteW@24
+ShellHookProc@12
+Shell_GetCachedImageIndexA@12
+Shell_GetCachedImageIndexW@12
+Shell_NotifyIcon@8
+Shell_NotifyIconA@8
+Shell_NotifyIconGetRect@8
+Shell_NotifyIconW@8
+SheGetPathOffsetW@4
+SheGetCurDrive@0
+SheGetDirW@8
+SheFullPathW@12
+SheFullPathA@12
+SheConvertPathW@12
+SheChangeDirW@4
+ExtractIconW@
+ExtractIconResInfoW@20
+ExtractIconResInfoA@20
+SheGetDirExW@12
+StrChrA@8
+StrChrIA@8
+StrChrIW@8
+StrChrW@8
+StrCmpNA@12
+StrCmpNIA@12
+StrCmpNIW@12
+StrCmpNW@12
+StrNCmpA@12
+StrNCmpIA@12
+StrNCmpIW@12
+StrNCmpW@12
+StrRChrA@12
+StrRChrIA@12
+StrRChrIW@12
+StrRChrW@12
+StrRStrA@12
+StrRStrIA@12
+StrRStrIW@12
+StrRStrW@12
+StrStrA@8
+StrStrIA@8
+StrStrIW@8
+StrStrW@8
+WOWShellExecute@28
+WaitForExplorerRestartW@16
+RealDriveType@8
+SHFlushSFCache@0
+SHChangeNotification_Lock@16
+SHChangeNotification_Unlock@4
+WriteCabinetState@4
+ReadCabinetState@8
+IsUserAnAdmin@0
+StgMakeUniqueName@20
+SHPropStgCreate@32
+SHPropStgReadMultiple@20
+SHPropStgWriteMultiple@24
+CDefFolderMenu_Create2@36
+SHGetSetFolderCustomSettings@12
+SHMultiFileProperties@8
+SHGetImageList@12
+RestartDialogEx@16
+SHCreateFileExtractIconW@16
+SHLimitInputEdit@8
+SHGetAttributesFromDataObject@16
+ILLoadFromStreamEx@8
diff --git a/lib/libc/mingw/lib32/urlmon.def b/lib/libc/mingw/lib32/urlmon.def
@@ -0,0 +1,230 @@
+;
+; Definition file of urlmon.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "urlmon.dll"
+EXPORTS
+ord_100@16 @100
+ord_101 @101
+ord_102 @102
+ord_103@8 @103
+ord_104@24 @104
+ord_105@12 @105
+ord_106@4 @106
+ord_107@8 @107
+ord_108 @108
+AsyncGetClassBits@44
+AsyncInstallDistributionUnit@36
+ord_111@8 @111
+ord_112@8 @112
+ord_113@8 @113
+ord_114 @114
+ord_115@4 @115
+ord_116@8 @116
+BindAsyncMoniker@20
+CDLGetLongPathNameA@12
+CDLGetLongPathNameW@12
+CORPolicyProvider@4
+CoGetClassObjectFromURL@40
+CoInstall@20
+CoInternetCanonicalizeIUri@12
+CoInternetCombineIUri@20
+CoInternetCombineUrl@28
+CoInternetCombineUrlEx@20
+CoInternetCompareUrl@12
+CoInternetCreateSecurityManager@12
+CoInternetCreateZoneManager@12
+CoInternetFeatureSettingsChanged
+CoInternetGetProtocolFlags@12
+CoInternetGetSecurityUrl@16
+CoInternetGetSecurityUrlEx@16
+CoInternetGetSession@12
+CoInternetIsFeatureEnabled@8
+CoInternetIsFeatureEnabledForIUri@16
+CoInternetIsFeatureEnabledForUrl@16
+CoInternetIsFeatureZoneElevationEnabled@16
+CoInternetParseIUri@28
+CoInternetParseUrl@28
+CoInternetQueryInfo@28
+CoInternetSetFeatureEnabled@12
+CompareSecurityIds@20
+CompatFlagsFromClsid@12
+CopyBindInfo@8
+CopyStgMedium@8
+CreateAsyncBindCtx@16
+CreateAsyncBindCtxEx@24
+CreateFormatEnumerator@12
+CreateIUriBuilder@16
+CreateURLMoniker@12
+CreateURLMonikerEx2@16
+CreateURLMonikerEx@16
+CreateUri@16
+CreateUriFromMultiByteString@24
+CreateUriPriv@32
+CreateUriWithFragment@20
+Extract@8
+FaultInIEFeature@16
+FindMediaType@8
+FindMediaTypeClass@16
+FindMimeFromData@32
+GetAddSitesFileUrl@4
+GetClassFileOrMime@28
+GetClassURL@8
+GetComponentIDFromCLSSPEC@8
+GetIDNFlagsForUri@4
+GetIUriPriv2@8
+GetIUriPriv@8
+GetLabelsFromNamedHost@20
+GetMarkOfTheWeb@16
+GetPortFromUrlScheme@8
+GetPropertyFromName@8
+GetPropertyName@4
+GetSoftwareUpdateInfo@8
+GetUrlmonThreadNotificationHwnd@0
+HlinkGoBack@4
+HlinkGoForward@4
+HlinkNavigateMoniker@8
+HlinkNavigateString@8
+HlinkSimpleNavigateToMoniker@32
+HlinkSimpleNavigateToString@32
+IEDllLoader@8
+IEInstallScope@4
+IntlPercentEncodeNormalize@16
+IsAsyncMoniker@4
+IsDWORDProperty@4
+IsIntranetAvailable
+IsJITInProgress
+IsLoggingEnabledA@4
+IsLoggingEnabledW@4
+IsStringProperty@4
+IsValidURL@12
+MkParseDisplayNameEx@16
+ObtainUserAgentString@12
+PrivateCoInstall@20
+QueryAssociations@16
+QueryClsidAssociation@12
+RegisterBindStatusCallback@16
+RegisterFormatEnumerator@12
+RegisterMediaTypeClass@20
+RegisterMediaTypes@12
+ReleaseBindInfo@4
+ResetUrlmonLanguageData@0
+RevokeBindStatusCallback@8
+RevokeFormatEnumerator@8
+SetSoftwareUpdateAdvertisementState@16
+ShouldDisplayPunycodeForUri@4
+ShouldShowIntranetWarningSecband@4
+ShowTrustAlertDialog@16
+URLDownloadA@20
+URLDownloadToCacheFileA@24
+URLDownloadToCacheFileW@24
+URLDownloadToFileA@20
+URLDownloadToFileW@20
+URLDownloadW@20
+URLOpenBlockingStreamA@20
+URLOpenBlockingStreamW@20
+URLOpenPullStreamA@16
+URLOpenPullStreamW@16
+URLOpenStreamA@16
+URLOpenStreamW@16
+UrlMkBuildVersion
+UrlMkGetSessionOption@20
+UrlMkSetSessionOption@16
+WriteHitLogging@4
+ZonesReInit@4
+ord_304@28 @304
+ord_305@12 @305
+ord_306@4 @306
+ord_307@20 @307
+ord_308@4 @308
+ord_309@4 @309
+ord_310@12 @310
+ord_311@12 @311
+ord_312@4 @312
+ord_313@8 @313
+ord_314@4 @314
+ord_315@8 @315
+ord_316@8 @316
+ord_318@8 @318
+ord_319@8 @319
+ord_320@12 @320
+ord_321@8 @321
+IECompatLogCSSFix@12
+ord_323@12 @323
+ord_324 @324
+; ord_395 @395 Couldn't determine function argument count. Function doesn't return.
+ord_400@8 @400
+ord_401@4 @401
+ord_403@4 @403
+ord_404 @404
+ord_406 @406
+ord_407 @407
+ord_408@8 @408
+ord_409@8 @409
+ord_410@8 @410
+ord_411@8 @411
+ord_412@8 @412
+ord_413@8 @413
+ord_414@8 @414
+ord_415@8 @415
+ord_416@12 @416
+ord_417@12 @417
+ord_420@24 @420
+ord_421@8 @421
+; ord_422 @422 Check!!! forwards to CloseHandle in KERNEL32.dll (ordinal 82)
+ord_423@16 @423
+ord_430 @430
+ord_431@4 @431
+ord_432@8 @432
+ord_433@4 @433
+ord_434@12 @434
+ord_435@12 @435
+ord_436@8 @436
+ord_437@8 @437
+ord_438@24 @438
+ord_439@4 @439
+ord_440@4 @440
+ord_441@16 @441
+ord_442@8 @442
+ord_443@8 @443
+ord_444@12 @444
+ord_445@8 @445
+ord_446@4 @446
+ord_447@4 @447
+ord_448@4 @448
+ord_449@4 @449
+ord_450@4 @450
+ord_451@4 @451
+ord_452@8 @452
+ord_453@8 @453
+ord_454@8 @454
+ord_455 @455
+ord_456 @456
+ord_457@4 @457
+ord_458 @458
+ord_460@4 @460
+ord_461@8 @461
+ord_462@20 @462
+ord_463@20 @463
+ord_470@4 @470
+ord_471 @471
+ord_473@4 @473
+ord_474@16 @474
+ord_475@16 @475
+ord_476@16 @476
+ord_477@16 @477
+ord_478@32 @478
+ord_479@32 @479
+ord_480@36 @480
+ord_481@36 @481
+ord_482@12 @482
+ord_483@28 @483
+ord_484@8 @484
+ord_485@8 @485
+ord_486@8 @486
+ord_487@4 @487
+ord_488 @488
+ord_489@16 @489
+ord_490@44 @490
+ord_491@4 @491
diff --git a/lib/libc/mingw/lib32/winmm.def b/lib/libc/mingw/lib32/winmm.def
@@ -0,0 +1,196 @@
+LIBRARY WINMM.DLL
+EXPORTS
+CloseDriver@12
+DefDriverProc@20
+DriverCallback@28
+DrvGetModuleHandle@4
+GetDriverModuleHandle@4
+NotifyCallbackData@20
+OpenDriver@12
+PlaySound@12
+PlaySoundA@12
+PlaySoundW@12
+SendDriverMessage@16
+WOW32DriverCallback@28
+WOW32ResolveMultiMediaHandle@24
+WOWAppExit@4
+aux32Message@20
+auxGetDevCapsA@12
+auxGetDevCapsW@12
+auxGetNumDevs@0
+auxGetVolume@8
+auxOutMessage@16
+auxSetVolume@8
+joy32Message@20
+joyConfigChanged@4
+joyGetDevCapsA@12
+joyGetDevCapsW@12
+joyGetNumDevs@0
+joyGetPos@8
+joyGetPosEx@8
+joyGetThreshold@8
+joyReleaseCapture@4
+joySetCapture@16
+joySetThreshold@8
+mci32Message@20
+mciDriverNotify@12
+mciDriverYield@4
+mciExecute@4
+mciFreeCommandResource@4
+mciGetCreatorTask@4
+mciGetDeviceIDA@4
+mciGetDeviceIDFromElementIDA@8
+mciGetDeviceIDFromElementIDW@8
+mciGetDeviceIDW@4
+mciGetDriverData@4
+mciGetErrorStringA@12
+mciGetErrorStringW@12
+mciGetYieldProc@8
+mciLoadCommandResource@12
+mciSendCommandA@16
+mciSendCommandW@16
+mciSendStringA@16
+mciSendStringW@16
+mciSetDriverData@8
+mciSetYieldProc@12
+mid32Message@20
+midiConnect@12
+midiDisconnect@12
+midiInAddBuffer@12
+midiInClose@4
+midiInGetDevCapsA@12
+midiInGetDevCapsW@12
+midiInGetErrorTextA@12
+midiInGetErrorTextW@12
+midiInGetID@8
+midiInGetNumDevs@0
+midiInMessage@16
+midiInOpen@20
+midiInPrepareHeader@12
+midiInReset@4
+midiInStart@4
+midiInStop@4
+midiInUnprepareHeader@12
+midiOutCacheDrumPatches@16
+midiOutCachePatches@16
+midiOutClose@4
+midiOutGetDevCapsA@12
+midiOutGetDevCapsW@12
+midiOutGetErrorTextA@12
+midiOutGetErrorTextW@12
+midiOutGetID@8
+midiOutGetNumDevs@0
+midiOutGetVolume@8
+midiOutLongMsg@12
+midiOutMessage@16
+midiOutOpen@20
+midiOutPrepareHeader@12
+midiOutReset@4
+midiOutSetVolume@8
+midiOutShortMsg@8
+midiOutUnprepareHeader@12
+midiStreamClose@4
+midiStreamOpen@24
+midiStreamOut@12
+midiStreamPause@4
+midiStreamPosition@12
+midiStreamProperty@12
+midiStreamRestart@4
+midiStreamStop@4
+mixerClose@4
+mixerGetControlDetailsA@12
+mixerGetControlDetailsW@12
+mixerGetDevCapsA@12
+mixerGetDevCapsW@12
+mixerGetID@12
+mixerGetLineControlsA@12
+mixerGetLineControlsW@12
+mixerGetLineInfoA@12
+mixerGetLineInfoW@12
+mixerGetNumDevs@0
+mixerMessage@16
+mixerOpen@20
+mixerSetControlDetails@12
+mmDrvInstall@12
+mmGetCurrentTask@0
+mmTaskBlock@4
+mmTaskCreate@12
+mmTaskSignal@4
+mmTaskYield@0
+mmioAdvance@12
+mmioAscend@12
+mmioClose@8
+mmioCreateChunk@12
+mmioDescend@16
+mmioFlush@8
+mmioGetInfo@12
+mmioInstallIOProcA@12
+mmioInstallIOProcW@12
+mmioOpenA@12
+mmioOpenW@12
+mmioRead@12
+mmioRenameA@16
+mmioRenameW@16
+mmioSeek@12
+mmioSendMessage@16
+mmioSetBuffer@16
+mmioSetInfo@12
+mmioStringToFOURCCA@8
+mmioStringToFOURCCW@8
+mmioWrite@12
+mmsystemGetVersion@0
+mod32Message@20
+mxd32Message@20
+sndPlaySoundA@8
+sndPlaySoundW@8
+tid32Message@20
+timeBeginPeriod@4
+timeEndPeriod@4
+timeGetDevCaps@8
+timeGetSystemTime@8
+timeGetTime@0
+timeKillEvent@4
+timeSetEvent@20
+waveInAddBuffer@12
+waveInClose@4
+waveInGetDevCapsA@12
+waveInGetDevCapsW@12
+waveInGetErrorTextA@12
+waveInGetErrorTextW@12
+waveInGetID@8
+waveInGetNumDevs@0
+waveInGetPosition@12
+waveInMessage@16
+waveInOpen@24
+waveInPrepareHeader@12
+waveInReset@4
+waveInStart@4
+waveInStop@4
+waveInUnprepareHeader@12
+waveOutBreakLoop@4
+waveOutClose@4
+waveOutGetDevCapsA@12
+waveOutGetDevCapsW@12
+waveOutGetErrorTextA@12
+waveOutGetErrorTextW@12
+waveOutGetID@8
+waveOutGetNumDevs@0
+waveOutGetPitch@8
+waveOutGetPlaybackRate@8
+waveOutGetPosition@12
+waveOutGetVolume@8
+waveOutMessage@16
+waveOutOpen@24
+waveOutPause@4
+waveOutPrepareHeader@12
+waveOutReset@4
+waveOutRestart@4
+waveOutSetPitch@8
+waveOutSetPlaybackRate@8
+waveOutSetVolume@8
+waveOutUnprepareHeader@12
+waveOutWrite@12
+wid32Message@20
+winmmDbgOut
+winmmSetDebugLevel@4
+wod32Message@20
diff --git a/lib/libc/mingw/lib32/winscard.def b/lib/libc/mingw/lib32/winscard.def
@@ -0,0 +1,75 @@
+;
+; Definition file of WinSCard.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "WinSCard.dll"
+EXPORTS
+ClassInstall32@12
+SCardAccessNewReaderEvent@0
+SCardReleaseAllEvents@0
+SCardReleaseNewReaderEvent@0
+SCardAccessStartedEvent@0
+SCardAddReaderToGroupA@12
+SCardAddReaderToGroupW@12
+SCardBeginTransaction@4
+SCardCancel@4
+SCardConnectA@24
+SCardConnectW@24
+SCardControl@28
+SCardDisconnect@8
+SCardEndTransaction@8
+SCardEstablishContext@16
+SCardForgetCardTypeA@8
+SCardForgetCardTypeW@8
+SCardForgetReaderA@8
+SCardForgetReaderGroupA@8
+SCardForgetReaderGroupW@8
+SCardForgetReaderW@8
+SCardFreeMemory@8
+SCardGetAttrib@16
+SCardGetCardTypeProviderNameA@20
+SCardGetCardTypeProviderNameW@20
+SCardGetProviderIdA@12
+SCardGetProviderIdW@12
+SCardGetStatusChangeA@16
+SCardGetStatusChangeW@16
+SCardGetTransmitCount@8
+SCardIntroduceCardTypeA@32
+SCardIntroduceCardTypeW@32
+SCardIntroduceReaderA@12
+SCardIntroduceReaderGroupA@8
+SCardIntroduceReaderGroupW@8
+SCardIntroduceReaderW@12
+SCardIsValidContext@4
+SCardListCardsA@24
+SCardListCardsW@24
+SCardListInterfacesA@16
+SCardListInterfacesW@16
+SCardListReaderGroupsA@12
+SCardListReaderGroupsW@12
+SCardListReadersA@16
+SCardListReadersW@16
+SCardLocateCardsA@16
+SCardLocateCardsByATRA@20
+SCardLocateCardsByATRW@20
+SCardLocateCardsW@16
+SCardReadCacheA@24
+SCardReadCacheW@24
+SCardReconnect@20
+SCardReleaseContext@4
+SCardReleaseStartedEvent@0
+SCardRemoveReaderFromGroupA@12
+SCardRemoveReaderFromGroupW@12
+SCardSetAttrib@16
+SCardSetCardTypeProviderNameA@16
+SCardSetCardTypeProviderNameW@16
+SCardState@20
+SCardStatusA@28
+SCardStatusW@28
+SCardTransmit@28
+SCardWriteCacheA@24
+SCardWriteCacheW@24
+g_rgSCardRawPci DATA
+g_rgSCardT0Pci DATA
+g_rgSCardT1Pci DATA
diff --git a/lib/libc/mingw/lib32/winspool.def b/lib/libc/mingw/lib32/winspool.def
@@ -0,0 +1,207 @@
+;
+; Definition file of WINSPOOL.DRV
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "WINSPOOL.DRV"
+EXPORTS
+ADVANCEDSETUPDIALOG@16
+AdvancedSetupDialog@16
+ConvertAnsiDevModeToUnicodeDevmode@16
+ConvertUnicodeDevModeToAnsiDevmode@16
+DEVICEMODE@16
+DeviceMode@16
+DocumentEvent@28
+PerfClose@0
+PerfCollect@16
+PerfOpen@4
+QueryColorProfile@24
+QueryRemoteFonts@12
+QuerySpoolMode@12
+SpoolerDevQueryPrintW@20
+StartDocDlgW@8
+AbortPrinter@4
+AddFormA@12
+AddFormW@12
+AddJobA@20
+AddJobW@20
+AddMonitorA@12
+AddMonitorW@12
+AddPortA@12
+AddPortExA@16
+AddPortExW@16
+AddPortW@12
+AddPrintProcessorA@16
+AddPrintProcessorW@16
+AddPrintProvidorA@12
+AddPrintProvidorW@12
+AddPrinterA@12
+AddPrinterConnection2A@16
+AddPrinterConnection2W@16
+AddPrinterConnectionA@4
+AddPrinterConnectionW@4
+AddPrinterDriverA@12
+AddPrinterDriverExA@16
+AddPrinterDriverExW@16
+AddPrinterDriverW@12
+AddPrinterW@12
+AdvancedDocumentPropertiesA@20
+AdvancedDocumentPropertiesW@20
+ClosePrinter@4
+CloseSpoolFileHandle@8
+CommitSpoolData@12
+ConfigurePortA@12
+ConfigurePortW@12
+ConnectToPrinterDlg@8
+CorePrinterDriverInstalledA@44
+CorePrinterDriverInstalledW@44
+CreatePrintAsyncNotifyChannel@24
+CreatePrinterIC@8
+DEVICECAPABILITIES@20
+DeleteFormA@8
+DeleteFormW@8
+DeleteJobNamedProperty@12
+DeleteMonitorA@12
+DeleteMonitorW@12
+DeletePortA@12
+DeletePortW@12
+DeletePrintProcessorA@12
+DeletePrintProcessorW@12
+DeletePrintProvidorA@12
+DeletePrintProvidorW@12
+DeletePrinter@4
+DeletePrinterConnectionA@4
+DeletePrinterConnectionW@4
+DeletePrinterDataA@8
+DeletePrinterDataExA@12
+DeletePrinterDataExW@12
+DeletePrinterDataW@8
+DeletePrinterDriverA@12
+DeletePrinterDriverExA@20
+DeletePrinterDriverExW@20
+DeletePrinterDriverPackageA@12
+DeletePrinterDriverPackageW@12
+DeletePrinterDriverW@12
+DeletePrinterIC@4
+DeletePrinterKeyA@8
+DeletePrinterKeyW@8
+DevQueryPrint@12
+DevQueryPrintEx@4
+DeviceCapabilities@20
+DeviceCapabilitiesA@20
+DeviceCapabilitiesW@20
+DevicePropertySheets@8
+DocumentPropertiesA@24
+DocumentPropertiesW@24
+DocumentPropertySheets@8
+EXTDEVICEMODE@32
+EndDocPrinter@4
+EndPagePrinter@4
+EnumFormsA@24
+EnumFormsW@24
+EnumJobNamedProperties@16
+EnumJobsA@32
+EnumJobsW@32
+EnumMonitorsA@24
+EnumMonitorsW@24
+EnumPortsA@24
+GetDefaultPrinterA@8
+SetDefaultPrinterA@4
+GetDefaultPrinterW@8
+SetDefaultPrinterW@4
+EnumPortsW@24
+EnumPrintProcessorDatatypesA@28
+EnumPrintProcessorDatatypesW@28
+EnumPrintProcessorsA@28
+EnumPrintProcessorsW@28
+EnumPrinterDataA@36
+EnumPrinterDataExA@24
+EnumPrinterDataExW@24
+EnumPrinterDataW@36
+EnumPrinterDriversA@28
+EnumPrinterDriversW@28
+EnumPrinterKeyA@20
+EnumPrinterKeyW@20
+EnumPrintersA@28
+EnumPrintersW@28
+ExtDeviceMode@32
+FindClosePrinterChangeNotification@4
+FindFirstPrinterChangeNotification@16
+FindNextPrinterChangeNotification@16
+FlushPrinter@20
+FreePrintNamedPropertyArray@8
+FreePrintPropertyValue@4
+FreePrinterNotifyInfo@4
+GetCorePrinterDriversA@20
+GetCorePrinterDriversW@20
+GetFormA@24
+GetFormW@24
+GetJobA@24
+GetJobNamedPropertyValue@16
+GetJobW@24
+GetPrintExecutionData@4
+GetPrintOutputInfo@16
+GetPrintProcessorDirectoryA@24
+GetPrintProcessorDirectoryW@24
+GetPrinterA@20
+GetPrinterDataA@24
+GetPrinterDataExA@28
+GetPrinterDataExW@28
+GetPrinterDataW@24
+GetPrinterDriver2A@28
+GetPrinterDriver2W@28
+GetPrinterDriverA@24
+GetPrinterDriverDirectoryA@24
+GetPrinterDriverDirectoryW@24
+GetPrinterDriverPackagePathA@28
+GetPrinterDriverPackagePathW@28
+GetPrinterDriverW@24
+GetPrinterW@20
+GetSpoolFileHandle@4
+InstallPrinterDriverFromPackageA@20
+InstallPrinterDriverFromPackageW@20
+IsValidDevmodeA@8
+IsValidDevmodeW@8
+OpenPrinter2A@16
+OpenPrinter2W@16
+OpenPrinterA@12
+OpenPrinterW@12
+PlayGdiScriptOnPrinterIC@24
+PrinterMessageBoxA@24
+PrinterMessageBoxW@24
+PrinterProperties@8
+ReadPrinter@16
+RegisterForPrintAsyncNotifications@24
+ReportJobProcessingProgress@16
+ResetPrinterA@8
+ResetPrinterW@8
+ScheduleJob@8
+SeekPrinter@24
+SetAllocFailCount@20
+SetFormA@16
+SetFormW@16
+SetJobA@20
+SetJobNamedProperty@12
+SetJobW@20
+SetPortA@16
+SetPortW@16
+SetPrinterA@16
+SetPrinterDataA@20
+SetPrinterDataExA@24
+SetPrinterDataExW@24
+SetPrinterDataW@20
+SetPrinterW@16
+SpoolerInit@0
+SplDriverUnloadComplete@4
+SpoolerPrinterEvent@20
+StartDocDlgA@8
+StartDocDlgW@8
+StartDocPrinterA@12
+StartDocPrinterW@12
+StartPagePrinter@4
+UnRegisterForPrintAsyncNotifications@4
+UploadPrinterDriverPackageA@28
+UploadPrinterDriverPackageW@28
+WaitForPrinterChange@8
+WritePrinter@16
+XcvDataW@32
diff --git a/lib/libc/mingw/lib32/wintrust.def b/lib/libc/mingw/lib32/wintrust.def
@@ -0,0 +1,137 @@
+;
+; Definition file of WINTRUST.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "WINTRUST.dll"
+EXPORTS
+CryptCATVerifyMember@12
+CryptSIPGetInfo@4
+CryptSIPGetRegWorkingFlags@4
+GenericChainCertificateTrust@4
+GenericChainFinalProv@4
+HTTPSCertificateTrust@4
+SoftpubDefCertInit@4
+SoftpubFreeDefUsageCallData@8
+SoftpubLoadDefUsageCallData@8
+WTHelperCertFindIssuerCertificate@28
+AddPersonalTrustDBPages@12
+CatalogCompactHashDatabase@16
+CryptCATAdminAcquireContext@12
+CryptCATAdminAddCatalog@16
+CryptCATAdminCalcHashFromFileHandle@16
+CryptCATAdminEnumCatalogFromHash@20
+CryptCATAdminPauseServiceForBackup@8
+CryptCATAdminReleaseCatalogContext@12
+CryptCATAdminReleaseContext@8
+CryptCATAdminRemoveCatalog@12
+CryptCATAdminResolveCatalogPath@16
+CryptCATAllocSortedMemberInfo@8
+CryptCATCDFClose@4
+CryptCATCDFEnumAttributes@16
+CryptCATCDFEnumAttributesWithCDFTag@20
+CryptCATCDFEnumCatAttributes@12
+CryptCATCDFEnumMembers@12
+CryptCATCDFEnumMembersByCDFTag@16
+CryptCATCDFEnumMembersByCDFTagEx@24
+CryptCATCDFOpen@8
+CryptCATCatalogInfoFromContext@12
+CryptCATClose@4
+CryptCATEnumerateAttr@12
+CryptCATEnumerateCatAttr@8
+CryptCATEnumerateMember@8
+CryptCATFreeSortedMemberInfo@8
+CryptCATGetAttrInfo@12
+CryptCATGetCatAttrInfo@8
+CryptCATGetMemberInfo@8
+CryptCATHandleFromStore@4
+CryptCATOpen@20
+CryptCATPersistStore@4
+CryptCATPutAttrInfo@24
+CryptCATPutCatAttrInfo@20
+CryptCATPutMemberInfo@28
+CryptCATStoreFromHandle@4
+CryptSIPCreateIndirectData@12
+CryptSIPGetSignedDataMsg@20
+CryptSIPPutSignedDataMsg@20
+CryptSIPRemoveSignedDataMsg@8
+CryptSIPVerifyIndirectData@8
+DllRegisterServer
+DllUnregisterServer
+DriverCleanupPolicy@4
+DriverFinalPolicy@4
+DriverInitializePolicy@4
+FindCertsByIssuer@28
+HTTPSFinalProv@4
+IsCatalogFile@8
+MsCatConstructHashTag@12
+MsCatFreeHashTag@4
+OfficeCleanupPolicy@4
+OfficeInitializePolicy@4
+OpenPersonalTrustDBDialog@4
+OpenPersonalTrustDBDialogEx@12
+SoftpubAuthenticode@4
+SoftpubCheckCert@16
+SoftpubCleanup@4
+SoftpubDllRegisterServer
+SoftpubDllUnregisterServer
+SoftpubDumpStructure@4
+SoftpubInitialize@4
+SoftpubLoadMessage@4
+SoftpubLoadSignature@4
+TrustDecode@36
+TrustFindIssuerCertificate@32
+TrustFreeDecode@8
+TrustIsCertificateSelfSigned@12
+TrustOpenStores@16
+WTHelperCertCheckValidSignature@4
+WTHelperCertIsSelfSigned@8
+WTHelperCheckCertUsage@8
+WTHelperGetAgencyInfo@12
+WTHelperGetFileHandle@4
+WTHelperGetFileHash@24
+WTHelperGetFileName@4
+WTHelperGetKnownUsages@8
+WTHelperGetProvCertFromChain@8
+WTHelperGetProvPrivateDataFromChain@8
+WTHelperGetProvSignerFromChain@16
+WTHelperIsInRootStore@8
+WTHelperOpenKnownStores@4
+WTHelperProvDataFromStateData@4
+WVTAsn1CatMemberInfoDecode@28
+WVTAsn1CatMemberInfoEncode@20
+WVTAsn1CatNameValueDecode@28
+WVTAsn1CatNameValueEncode@20
+WVTAsn1SpcFinancialCriteriaInfoDecode@28
+WVTAsn1SpcFinancialCriteriaInfoEncode@20
+WVTAsn1SpcIndirectDataContentDecode@28
+WVTAsn1SpcIndirectDataContentEncode@20
+WVTAsn1SpcLinkDecode@28
+WVTAsn1SpcLinkEncode@20
+WVTAsn1SpcMinimalCriteriaInfoDecode@28
+WVTAsn1SpcMinimalCriteriaInfoEncode@20
+WVTAsn1SpcPeImageDataDecode@28
+WVTAsn1SpcPeImageDataEncode@20
+WVTAsn1SpcSigInfoDecode@28
+WVTAsn1SpcSigInfoEncode@20
+WVTAsn1SpcSpAgencyInfoDecode@28
+WVTAsn1SpcSpAgencyInfoEncode@20
+WVTAsn1SpcSpOpusInfoDecode@28
+WVTAsn1SpcSpOpusInfoEncode@20
+WVTAsn1SpcStatementTypeDecode@28
+WVTAsn1SpcStatementTypeEncode@20
+WinVerifyTrust@12
+WinVerifyTrustEx@12
+WintrustAddActionID@12
+WintrustAddDefaultForUsage@8
+WintrustCertificateTrust@4
+WintrustGetDefaultForUsage@12
+WintrustGetRegPolicyFlags@4
+WintrustLoadFunctionPointers@8
+WintrustRemoveActionID@4
+WintrustSetDefaultIncludePEPageHashes@4
+WintrustSetRegPolicyFlags@4
+mscat32DllRegisterServer
+mscat32DllUnregisterServer
+mssip32DllRegisterServer
+mssip32DllUnregisterServer
diff --git a/lib/libc/mingw/lib32/ws2_32.def b/lib/libc/mingw/lib32/ws2_32.def
@@ -0,0 +1,174 @@
+;
+; Definition file of WS2_32.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "WS2_32.dll"
+EXPORTS
+accept@12
+bind@12
+closesocket@4
+connect@12
+getpeername@12
+getsockname@12
+getsockopt@20
+htonl@4
+htons@4
+ioctlsocket@12
+inet_addr@4
+inet_ntoa@4
+listen@8
+ntohl@4
+ntohs@4
+recv@16
+recvfrom@24
+select@20
+send@16
+sendto@24
+setsockopt@20
+shutdown@8
+socket@12
+WSApSetPostRoutine@4
+FreeAddrInfoEx@4
+FreeAddrInfoExW@4
+FreeAddrInfoW@4
+GetAddrInfoExA@40
+GetAddrInfoExW@40
+GetAddrInfoW@16
+GetNameInfoW@28
+InetNtopW@16
+InetPtonW@12
+SetAddrInfoExA@48
+SetAddrInfoExW@48
+WPUCompleteOverlappedRequest@20
+WSAAccept@20
+WSAAddressToStringA@20
+WSAAddressToStringW@20
+WSAAdvertiseProvider@8
+WSACloseEvent@4
+WSAConnect@28
+WSAConnectByList@32
+WSAConnectByNameA@36
+WSAConnectByNameW@36
+WSACreateEvent@0
+WSADuplicateSocketA@12
+WSADuplicateSocketW@12
+WSAEnumNameSpaceProvidersA@8
+WSAEnumNameSpaceProvidersExA@8
+gethostbyaddr@12
+gethostbyname@4
+getprotobyname@4
+getprotobynumber@4
+getservbyname@8
+getservbyport@8
+gethostname@8
+WSAEnumNameSpaceProvidersExW@8
+WSAEnumNameSpaceProvidersW@8
+WSAEnumNetworkEvents@12
+WSAEnumProtocolsA@12
+WSAEnumProtocolsW@12
+WSAEventSelect@12
+WSAGetOverlappedResult@20
+WSAGetQOSByName@12
+WSAGetServiceClassInfoA@16
+WSAGetServiceClassInfoW@16
+WSAGetServiceClassNameByClassIdA@12
+WSAGetServiceClassNameByClassIdW@12
+WSAHtonl@12
+WSAHtons@12
+WSAInstallServiceClassA@4
+WSAInstallServiceClassW@4
+WSAIoctl@36
+WSAJoinLeaf@32
+WSALookupServiceBeginA@12
+WSALookupServiceBeginW@12
+WSALookupServiceEnd@4
+WSALookupServiceNextA@16
+WSALookupServiceNextW@16
+WSANSPIoctl@32
+WSANtohl@12
+WSANtohs@12
+WSAPoll@12
+WSAProviderCompleteAsyncCall@8
+WSAProviderConfigChange@12
+WSARecv@28
+WSARecvDisconnect@8
+WSARecvFrom@36
+WSARemoveServiceClass@4
+WSAResetEvent@4
+WSASend@28
+WSASendDisconnect@8
+WSASendMsg@24
+WSASendTo@36
+WSASetEvent@4
+WSASetServiceA@12
+WSASetServiceW@12
+WSASocketA@24
+WSASocketW@24
+WSAAsyncSelect@16
+WSAAsyncGetHostByAddr@28
+WSAAsyncGetHostByName@20
+WSAAsyncGetProtoByNumber@20
+WSAAsyncGetProtoByName@20
+WSAAsyncGetServByPort@24
+WSAAsyncGetServByName@24
+WSACancelAsyncRequest@4
+WSASetBlockingHook@4
+WSAUnhookBlockingHook@0
+WSAGetLastError@0
+WSASetLastError@4
+WSACancelBlockingCall@0
+WSAIsBlocking@0
+WSAStartup@8
+WSACleanup@0
+WSAStringToAddressA@20
+WSAStringToAddressW@20
+WSAUnadvertiseProvider@4
+WSAWaitForMultipleEvents@20
+WSCDeinstallProvider@8
+WSCEnableNSProvider@8
+WSCEnumProtocols@16
+WSCGetApplicationCategory@24
+WSCGetProviderInfo@24
+WSCGetProviderPath@16
+WSCInstallNameSpace@20
+WSCInstallNameSpaceEx@24
+WSCInstallProvider@20
+WSCInstallProviderAndChains@32
+WSCSetApplicationCategory@28
+WSCSetProviderInfo@24
+WSCUnInstallNameSpace@4
+WSCUpdateProvider@20
+WSCWriteNameSpaceOrder@8
+WSCWriteProviderOrder@8
+WahCloseApcHelper@4
+WahCloseHandleHelper@4
+WahCloseNotificationHandleHelper@4
+WahCloseSocketHandle@8
+WahCloseThread@8
+WahCompleteRequest@20
+WahCreateHandleContextTable@4
+WahCreateNotificationHandle@8
+WahCreateSocketHandle@8
+WahDestroyHandleContextTable@4
+WahDisableNonIFSHandleSupport@0
+WahEnableNonIFSHandleSupport@0
+WahEnumerateHandleContexts@12
+WahInsertHandleContext@8
+__WSAFDIsSet@8
+WahNotifyAllProcesses@4
+WahOpenApcHelper@4
+WahOpenCurrentThread@8
+WahOpenHandleHelper@4
+WahOpenNotificationHandleHelper@4
+WahQueueUserApc@16
+WahReferenceContextByHandle@8
+WahRemoveHandleContext@8
+WahWaitForNotification@16
+WahWriteLSPEvent@8
+freeaddrinfo@4
+getaddrinfo@16
+getnameinfo@28
+inet_ntop@16
+inet_pton@12
+WEP@0
diff --git a/lib/libc/mingw/lib64/mswsock.def b/lib/libc/mingw/lib64/mswsock.def
@@ -0,0 +1,40 @@
+;
+; Exports of file MSWSOCK.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY MSWSOCK.dll
+EXPORTS
+ServiceMain
+SvchostPushServiceGlobals
+AcceptEx
+EnumProtocolsA
+EnumProtocolsW
+GetAcceptExSockaddrs
+GetAddressByNameA
+GetAddressByNameW
+GetNameByTypeA
+GetNameByTypeW
+GetServiceA
+GetServiceW
+GetTypeByNameA
+GetTypeByNameW
+MigrateWinsockConfiguration
+NPLoadNameSpaces
+NSPStartup
+SetServiceA
+SetServiceW
+StartWsdpService
+StopWsdpService
+TransmitFile
+WSARecvEx
+WSPStartup
+dn_expand
+getnetbyname
+inet_network
+rcmd
+rexec
+rresvport
+s_perror
+sethostname
diff --git a/lib/libc/mingw/lib64/opengl32.def b/lib/libc/mingw/lib64/opengl32.def
@@ -0,0 +1,376 @@
+;
+; Exports of file OPENGL32.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY OPENGL32.dll
+EXPORTS
+GlmfBeginGlsBlock
+GlmfCloseMetaFile
+GlmfEndGlsBlock
+GlmfEndPlayback
+GlmfInitPlayback
+GlmfPlayGlsRecord
+glAccum
+glAlphaFunc
+glAreTexturesResident
+glArrayElement
+glBegin
+glBindTexture
+glBitmap
+glBlendFunc
+glCallList
+glCallLists
+glClear
+glClearAccum
+glClearColor
+glClearDepth
+glClearIndex
+glClearStencil
+glClipPlane
+glColor3b
+glColor3bv
+glColor3d
+glColor3dv
+glColor3f
+glColor3fv
+glColor3i
+glColor3iv
+glColor3s
+glColor3sv
+glColor3ub
+glColor3ubv
+glColor3ui
+glColor3uiv
+glColor3us
+glColor3usv
+glColor4b
+glColor4bv
+glColor4d
+glColor4dv
+glColor4f
+glColor4fv
+glColor4i
+glColor4iv
+glColor4s
+glColor4sv
+glColor4ub
+glColor4ubv
+glColor4ui
+glColor4uiv
+glColor4us
+glColor4usv
+glColorMask
+glColorMaterial
+glColorPointer
+glCopyPixels
+glCopyTexImage1D
+glCopyTexImage2D
+glCopyTexSubImage1D
+glCopyTexSubImage2D
+glCullFace
+glDebugEntry
+glDeleteLists
+glDeleteTextures
+glDepthFunc
+glDepthMask
+glDepthRange
+glDisable
+glDisableClientState
+glDrawArrays
+glDrawBuffer
+glDrawElements
+glDrawPixels
+glEdgeFlag
+glEdgeFlagPointer
+glEdgeFlagv
+glEnable
+glEnableClientState
+glEnd
+glEndList
+glEvalCoord1d
+glEvalCoord1dv
+glEvalCoord1f
+glEvalCoord1fv
+glEvalCoord2d
+glEvalCoord2dv
+glEvalCoord2f
+glEvalCoord2fv
+glEvalMesh1
+glEvalMesh2
+glEvalPoint1
+glEvalPoint2
+glFeedbackBuffer
+glFinish
+glFlush
+glFogf
+glFogfv
+glFogi
+glFogiv
+glFrontFace
+glFrustum
+glGenLists
+glGenTextures
+glGetBooleanv
+glGetClipPlane
+glGetDoublev
+glGetError
+glGetFloatv
+glGetIntegerv
+glGetLightfv
+glGetLightiv
+glGetMapdv
+glGetMapfv
+glGetMapiv
+glGetMaterialfv
+glGetMaterialiv
+glGetPixelMapfv
+glGetPixelMapuiv
+glGetPixelMapusv
+glGetPointerv
+glGetPolygonStipple
+glGetString
+glGetTexEnvfv
+glGetTexEnviv
+glGetTexGendv
+glGetTexGenfv
+glGetTexGeniv
+glGetTexImage
+glGetTexLevelParameterfv
+glGetTexLevelParameteriv
+glGetTexParameterfv
+glGetTexParameteriv
+glHint
+glIndexMask
+glIndexPointer
+glIndexd
+glIndexdv
+glIndexf
+glIndexfv
+glIndexi
+glIndexiv
+glIndexs
+glIndexsv
+glIndexub
+glIndexubv
+glInitNames
+glInterleavedArrays
+glIsEnabled
+glIsList
+glIsTexture
+glLightModelf
+glLightModelfv
+glLightModeli
+glLightModeliv
+glLightf
+glLightfv
+glLighti
+glLightiv
+glLineStipple
+glLineWidth
+glListBase
+glLoadIdentity
+glLoadMatrixd
+glLoadMatrixf
+glLoadName
+glLogicOp
+glMap1d
+glMap1f
+glMap2d
+glMap2f
+glMapGrid1d
+glMapGrid1f
+glMapGrid2d
+glMapGrid2f
+glMaterialf
+glMaterialfv
+glMateriali
+glMaterialiv
+glMatrixMode
+glMultMatrixd
+glMultMatrixf
+glNewList
+glNormal3b
+glNormal3bv
+glNormal3d
+glNormal3dv
+glNormal3f
+glNormal3fv
+glNormal3i
+glNormal3iv
+glNormal3s
+glNormal3sv
+glNormalPointer
+glOrtho
+glPassThrough
+glPixelMapfv
+glPixelMapuiv
+glPixelMapusv
+glPixelStoref
+glPixelStorei
+glPixelTransferf
+glPixelTransferi
+glPixelZoom
+glPointSize
+glPolygonMode
+glPolygonOffset
+glPolygonStipple
+glPopAttrib
+glPopClientAttrib
+glPopMatrix
+glPopName
+glPrioritizeTextures
+glPushAttrib
+glPushClientAttrib
+glPushMatrix
+glPushName
+glRasterPos2d
+glRasterPos2dv
+glRasterPos2f
+glRasterPos2fv
+glRasterPos2i
+glRasterPos2iv
+glRasterPos2s
+glRasterPos2sv
+glRasterPos3d
+glRasterPos3dv
+glRasterPos3f
+glRasterPos3fv
+glRasterPos3i
+glRasterPos3iv
+glRasterPos3s
+glRasterPos3sv
+glRasterPos4d
+glRasterPos4dv
+glRasterPos4f
+glRasterPos4fv
+glRasterPos4i
+glRasterPos4iv
+glRasterPos4s
+glRasterPos4sv
+glReadBuffer
+glReadPixels
+glRectd
+glRectdv
+glRectf
+glRectfv
+glRecti
+glRectiv
+glRects
+glRectsv
+glRenderMode
+glRotated
+glRotatef
+glScaled
+glScalef
+glScissor
+glSelectBuffer
+glShadeModel
+glStencilFunc
+glStencilMask
+glStencilOp
+glTexCoord1d
+glTexCoord1dv
+glTexCoord1f
+glTexCoord1fv
+glTexCoord1i
+glTexCoord1iv
+glTexCoord1s
+glTexCoord1sv
+glTexCoord2d
+glTexCoord2dv
+glTexCoord2f
+glTexCoord2fv
+glTexCoord2i
+glTexCoord2iv
+glTexCoord2s
+glTexCoord2sv
+glTexCoord3d
+glTexCoord3dv
+glTexCoord3f
+glTexCoord3fv
+glTexCoord3i
+glTexCoord3iv
+glTexCoord3s
+glTexCoord3sv
+glTexCoord4d
+glTexCoord4dv
+glTexCoord4f
+glTexCoord4fv
+glTexCoord4i
+glTexCoord4iv
+glTexCoord4s
+glTexCoord4sv
+glTexCoordPointer
+glTexEnvf
+glTexEnvfv
+glTexEnvi
+glTexEnviv
+glTexGend
+glTexGendv
+glTexGenf
+glTexGenfv
+glTexGeni
+glTexGeniv
+glTexImage1D
+glTexImage2D
+glTexParameterf
+glTexParameterfv
+glTexParameteri
+glTexParameteriv
+glTexSubImage1D
+glTexSubImage2D
+glTranslated
+glTranslatef
+glVertex2d
+glVertex2dv
+glVertex2f
+glVertex2fv
+glVertex2i
+glVertex2iv
+glVertex2s
+glVertex2sv
+glVertex3d
+glVertex3dv
+glVertex3f
+glVertex3fv
+glVertex3i
+glVertex3iv
+glVertex3s
+glVertex3sv
+glVertex4d
+glVertex4dv
+glVertex4f
+glVertex4fv
+glVertex4i
+glVertex4iv
+glVertex4s
+glVertex4sv
+glVertexPointer
+glViewport
+wglChoosePixelFormat
+wglCopyContext
+wglCreateContext
+wglCreateLayerContext
+wglDeleteContext
+wglDescribeLayerPlane
+wglDescribePixelFormat
+wglGetCurrentContext
+wglGetCurrentDC
+wglGetDefaultProcAddress
+wglGetLayerPaletteEntries
+wglGetPixelFormat
+wglGetProcAddress
+wglMakeCurrent
+wglRealizeLayerPalette
+wglSetLayerPaletteEntries
+wglSetPixelFormat
+wglShareLists
+wglSwapBuffers
+wglSwapLayerBuffers
+wglSwapMultipleBuffers
+wglUseFontBitmapsA
+wglUseFontBitmapsW
+wglUseFontOutlinesA
+wglUseFontOutlinesW
diff --git a/lib/libc/mingw/lib64/urlmon.def b/lib/libc/mingw/lib64/urlmon.def
@@ -0,0 +1,96 @@
+;
+; Exports of file urlmon.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY urlmon.dll
+EXPORTS
+AsyncGetClassBits
+AsyncInstallDistributionUnit
+BindAsyncMoniker
+CDLGetLongPathNameA
+CDLGetLongPathNameW
+CoGetClassObjectFromURL
+CoInstall
+CoInternetCombineUrl
+CoInternetCompareUrl
+CoInternetCreateSecurityManager
+CoInternetCreateZoneManager
+CoInternetFeatureSettingsChanged
+CoInternetGetProtocolFlags
+CoInternetGetSecurityUrl
+CoInternetGetSession
+CoInternetIsFeatureEnabled
+CoInternetIsFeatureEnabledForUrl
+CoInternetIsFeatureZoneElevationEnabled
+CoInternetParseUrl
+CoInternetQueryInfo
+CoInternetSetFeatureEnabled
+CompareSecurityIds
+CompatFlagsFromClsid
+CopyBindInfo
+CopyStgMedium
+CreateAsyncBindCtx
+CreateAsyncBindCtxEx
+CreateFormatEnumerator
+CreateURLMoniker
+CreateURLMonikerEx
+DllCanUnloadNow
+DllGetClassObject
+DllInstall
+DllRegisterServer
+DllRegisterServerEx
+DllUnregisterServer
+Extract
+FaultInIEFeature
+FindMediaType
+FindMediaTypeClass
+FindMimeFromData
+GetAddSitesFileUrl
+GetClassFileOrMime
+GetClassURL
+GetComponentIDFromCLSSPEC
+GetMarkOfTheWeb
+GetSoftwareUpdateInfo
+HlinkGoBack
+HlinkGoForward
+HlinkNavigateMoniker
+HlinkNavigateString
+HlinkSimpleNavigateToMoniker
+HlinkSimpleNavigateToString
+InstallFlash
+IsAsyncMoniker
+IsJITInProgress
+IsLoggingEnabledA
+IsLoggingEnabledW
+IsValidURL
+MkParseDisplayNameEx
+ObtainUserAgentString
+PrivateCoInstall
+RegisterBindStatusCallback
+RegisterFormatEnumerator
+RegisterMediaTypeClass
+RegisterMediaTypes
+ReleaseBindInfo
+RevokeBindStatusCallback
+RevokeFormatEnumerator
+SetSoftwareUpdateAdvertisementState
+ShowTrustAlertDialog
+URLDownloadA
+URLDownloadToCacheFileA
+URLDownloadToCacheFileW
+URLDownloadToFileA
+URLDownloadToFileW
+URLDownloadW
+URLOpenBlockingStreamA
+URLOpenBlockingStreamW
+URLOpenPullStreamA
+URLOpenPullStreamW
+URLOpenStreamA
+URLOpenStreamW
+UrlMkBuildVersion
+UrlMkGetSessionOption
+UrlMkSetSessionOption
+WriteHitLogging
+ZonesReInit
diff --git a/lib/libc/mingw/lib64/wintrust.def b/lib/libc/mingw/lib64/wintrust.def
@@ -0,0 +1,136 @@
+;
+; Exports of file WINTRUST.dll
+;
+; Autogenerated by gen_exportdef
+; Written by Kai Tietz, 2007
+;
+LIBRARY WINTRUST.dll
+EXPORTS
+CryptCATVerifyMember
+CryptSIPGetInfo
+CryptSIPGetRegWorkingFlags
+GenericChainCertificateTrust
+GenericChainFinalProv
+HTTPSCertificateTrust
+SoftpubDefCertInit
+SoftpubFreeDefUsageCallData
+SoftpubLoadDefUsageCallData
+WTHelperCertFindIssuerCertificate
+AddPersonalTrustDBPages
+CatalogCompactHashDatabase
+CryptCATAdminAcquireContext
+CryptCATAdminAddCatalog
+CryptCATAdminCalcHashFromFileHandle
+CryptCATAdminEnumCatalogFromHash
+CryptCATAdminPauseServiceForBackup
+CryptCATAdminReleaseCatalogContext
+CryptCATAdminReleaseContext
+CryptCATAdminRemoveCatalog
+CryptCATAdminResolveCatalogPath
+CryptCATCDFClose
+CryptCATCDFEnumAttributes
+CryptCATCDFEnumAttributesWithCDFTag
+CryptCATCDFEnumCatAttributes
+CryptCATCDFEnumMembers
+CryptCATCDFEnumMembersByCDFTag
+CryptCATCDFEnumMembersByCDFTagEx
+CryptCATCDFOpen
+CryptCATCatalogInfoFromContext
+CryptCATClose
+CryptCATEnumerateAttr
+CryptCATEnumerateCatAttr
+CryptCATEnumerateMember
+CryptCATGetAttrInfo
+CryptCATGetCatAttrInfo
+CryptCATGetMemberInfo
+CryptCATHandleFromStore
+CryptCATOpen
+CryptCATPersistStore
+CryptCATPutAttrInfo
+CryptCATPutCatAttrInfo
+CryptCATPutMemberInfo
+CryptCATStoreFromHandle
+CryptSIPCreateIndirectData
+CryptSIPGetSignedDataMsg
+CryptSIPPutSignedDataMsg
+CryptSIPRemoveSignedDataMsg
+CryptSIPVerifyIndirectData
+DllRegisterServer
+DllUnregisterServer
+DriverCleanupPolicy
+DriverFinalPolicy
+DriverInitializePolicy
+FindCertsByIssuer
+HTTPSFinalProv
+I_CryptCatAdminMigrateToNewCatDB
+IsCatalogFile
+MsCatConstructHashTag
+MsCatFreeHashTag
+OfficeCleanupPolicy
+OfficeInitializePolicy
+OpenPersonalTrustDBDialog
+OpenPersonalTrustDBDialogEx
+SoftpubAuthenticode
+SoftpubCheckCert
+SoftpubCleanup
+SoftpubDllRegisterServer
+SoftpubDllUnregisterServer
+SoftpubDumpStructure
+SoftpubInitialize
+SoftpubLoadMessage
+SoftpubLoadSignature
+TrustDecode
+TrustFindIssuerCertificate
+TrustFreeDecode
+TrustIsCertificateSelfSigned
+TrustOpenStores
+WTHelperCertCheckValidSignature
+WTHelperCertIsSelfSigned
+WTHelperCheckCertUsage
+WTHelperGetAgencyInfo
+WTHelperGetFileHandle
+WTHelperGetFileHash
+WTHelperGetFileName
+WTHelperGetKnownUsages
+WTHelperGetProvCertFromChain
+WTHelperGetProvPrivateDataFromChain
+WTHelperGetProvSignerFromChain
+WTHelperIsInRootStore
+WTHelperOpenKnownStores
+WTHelperProvDataFromStateData
+WVTAsn1CatMemberInfoDecode
+WVTAsn1CatMemberInfoEncode
+WVTAsn1CatNameValueDecode
+WVTAsn1CatNameValueEncode
+WVTAsn1SpcFinancialCriteriaInfoDecode
+WVTAsn1SpcFinancialCriteriaInfoEncode
+WVTAsn1SpcIndirectDataContentDecode
+WVTAsn1SpcIndirectDataContentEncode
+WVTAsn1SpcLinkDecode
+WVTAsn1SpcLinkEncode
+WVTAsn1SpcMinimalCriteriaInfoDecode
+WVTAsn1SpcMinimalCriteriaInfoEncode
+WVTAsn1SpcPeImageDataDecode
+WVTAsn1SpcPeImageDataEncode
+WVTAsn1SpcSigInfoDecode
+WVTAsn1SpcSigInfoEncode
+WVTAsn1SpcSpAgencyInfoDecode
+WVTAsn1SpcSpAgencyInfoEncode
+WVTAsn1SpcSpOpusInfoDecode
+WVTAsn1SpcSpOpusInfoEncode
+WVTAsn1SpcStatementTypeDecode
+WVTAsn1SpcStatementTypeEncode
+WinVerifyTrust
+WinVerifyTrustEx
+WintrustAddActionID
+WintrustAddDefaultForUsage
+WintrustCertificateTrust
+WintrustGetDefaultForUsage
+WintrustGetRegPolicyFlags
+WintrustLoadFunctionPointers
+WintrustRemoveActionID
+WintrustSetRegPolicyFlags
+mscat32DllRegisterServer
+mscat32DllUnregisterServer
+mssip32DllRegisterServer
+mssip32DllUnregisterServer
diff --git a/lib/libc/mingw/libarm32/mswsock.def b/lib/libc/mingw/libarm32/mswsock.def
@@ -0,0 +1,70 @@
+;
+; Definition file of MSWSOCK.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008-2014
+;
+LIBRARY "MSWSOCK.dll"
+EXPORTS
+AcceptEx
+EnumProtocolsA
+EnumProtocolsW
+GetAcceptExSockaddrs
+GetAddressByNameA
+GetAddressByNameW
+GetNameByTypeA
+GetNameByTypeW
+GetServiceA
+GetServiceW
+GetSocketErrorMessageW
+GetTypeByNameA
+GetTypeByNameW
+MigrateWinsockConfiguration
+MigrateWinsockConfigurationEx
+NPLoadNameSpaces
+NSPStartup
+SetServiceA
+SetServiceW
+StartWsdpService
+StopWsdpService
+Tcpip4_WSHAddressToString
+Tcpip4_WSHEnumProtocols
+Tcpip4_WSHGetBroadcastSockaddr
+Tcpip4_WSHGetProviderGuid
+Tcpip4_WSHGetSockaddrType
+Tcpip4_WSHGetSocketInformation
+Tcpip4_WSHGetWSAProtocolInfo
+Tcpip4_WSHGetWildcardSockaddr
+Tcpip4_WSHGetWinsockMapping
+Tcpip4_WSHIoctl
+Tcpip4_WSHJoinLeaf
+Tcpip4_WSHNotify
+Tcpip4_WSHOpenSocket
+Tcpip4_WSHOpenSocket2
+Tcpip4_WSHSetSocketInformation
+Tcpip4_WSHStringToAddress
+Tcpip6_WSHAddressToString
+Tcpip6_WSHEnumProtocols
+Tcpip6_WSHGetProviderGuid
+Tcpip6_WSHGetSockaddrType
+Tcpip6_WSHGetSocketInformation
+Tcpip6_WSHGetWSAProtocolInfo
+Tcpip6_WSHGetWildcardSockaddr
+Tcpip6_WSHGetWinsockMapping
+Tcpip6_WSHIoctl
+Tcpip6_WSHJoinLeaf
+Tcpip6_WSHNotify
+Tcpip6_WSHOpenSocket
+Tcpip6_WSHOpenSocket2
+Tcpip6_WSHSetSocketInformation
+Tcpip6_WSHStringToAddress
+TransmitFile
+WSARecvEx
+WSPStartup
+dn_expand
+getnetbyname
+inet_network
+rcmd
+rexec
+rresvport
+s_perror
+sethostname
diff --git a/lib/libc/mingw/libarm32/urlmon.def b/lib/libc/mingw/libarm32/urlmon.def
@@ -0,0 +1,292 @@
+;
+; Definition file of urlmon.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008-2014
+;
+LIBRARY "urlmon.dll"
+EXPORTS
+ord_100 @100
+ord_101 @101
+ord_102 @102
+ord_103 @103
+ord_104 @104
+ord_105 @105
+ord_106 @106
+ord_107 @107
+ord_108 @108
+FileBearsMarkOfTheWeb
+GetPortFromUrlScheme
+ord_111 @111
+ord_112 @112
+ord_113 @113
+ord_114 @114
+ord_115 @115
+ord_116 @116
+ord_117 @117
+GetPropertyFromName
+GetPropertyName
+IsDWORDProperty
+IsStringProperty
+AsyncGetClassBits
+AsyncInstallDistributionUnit
+BindAsyncMoniker
+CDLGetLongPathNameA
+CDLGetLongPathNameW
+CORPolicyProvider
+CoGetClassObjectFromURL
+CoInstall
+CoInternetCanonicalizeIUri
+CoInternetCombineIUri
+CoInternetCombineUrl
+CoInternetCombineUrlEx
+CoInternetCompareUrl
+CoInternetCreateSecurityManager
+CoInternetCreateZoneManager
+CoInternetFeatureSettingsChanged
+CoInternetGetProtocolFlags
+CoInternetGetSecurityUrl
+CoInternetGetSecurityUrlEx
+CoInternetGetSession
+CoInternetIsFeatureEnabled
+CoInternetIsFeatureEnabledForIUri
+CoInternetIsFeatureEnabledForUrl
+CoInternetIsFeatureZoneElevationEnabled
+CoInternetParseIUri
+CoInternetParseUrl
+CoInternetQueryInfo
+CoInternetSetFeatureEnabled
+CompareSecurityIds
+CompatFlagsFromClsid
+CopyBindInfo
+CopyStgMedium
+CreateAsyncBindCtx
+CreateAsyncBindCtxEx
+CreateFormatEnumerator
+CreateIUriBuilder
+CreateURLMoniker
+CreateURLMonikerEx
+CreateURLMonikerEx2
+CreateUri
+CreateUriFromMultiByteString
+CreateUriPriv
+CreateUriWithFragment
+Extract
+FaultInIEFeature
+FindMediaType
+FindMediaTypeClass
+FindMimeFromData
+GetAddSitesFileUrl
+GetClassFileOrMime
+GetClassURL
+GetComponentIDFromCLSSPEC
+GetIDNFlagsForUri
+GetIUriPriv
+GetIUriPriv2
+GetLabelsFromNamedHost
+GetMarkOfTheWeb
+GetSoftwareUpdateInfo
+GetUrlmonThreadNotificationHwnd
+GetZoneFromAlternateDataStreamEx
+HlinkGoBack
+HlinkGoForward
+HlinkNavigateMoniker
+HlinkNavigateString
+HlinkSimpleNavigateToMoniker
+HlinkSimpleNavigateToString
+IEDllLoader
+IEGetUserPrivateNamespaceName
+IEInstallScope
+IntlPercentEncodeNormalize
+IsAsyncMoniker
+IsIntranetAvailable
+IsJITInProgress
+IsLoggingEnabledA
+IsLoggingEnabledW
+IsValidURL
+MkParseDisplayNameEx
+ObtainUserAgentString
+PrivateCoInstall
+QueryAssociations
+QueryClsidAssociation
+RegisterBindStatusCallback
+RegisterFormatEnumerator
+RegisterMediaTypeClass
+RegisterMediaTypes
+RegisterWebPlatformPermanentSecurityManager
+ReleaseBindInfo
+RevokeBindStatusCallback
+RevokeFormatEnumerator
+SetAccessForIEAppContainer
+SetSoftwareUpdateAdvertisementState
+ShouldDisplayPunycodeForUri
+ShouldShowIntranetWarningSecband
+ShowTrustAlertDialog
+URLDownloadA
+URLDownloadToCacheFileA
+URLDownloadToCacheFileW
+URLDownloadToFileA
+URLDownloadToFileW
+URLDownloadW
+URLOpenBlockingStreamA
+URLOpenBlockingStreamW
+URLOpenPullStreamA
+URLOpenPullStreamW
+URLOpenStreamA
+URLOpenStreamW
+UnregisterWebPlatformPermanentSecurityManager
+UrlMkBuildVersion
+UrlMkGetSessionOption
+UrlMkSetSessionOption
+UrlmonCleanupCurrentThread
+WriteHitLogging
+ZonesReInit
+ord_304 @304
+ord_305 @305
+ord_306 @306
+ord_307 @307
+ord_308 @308
+ord_309 @309
+ord_310 @310
+ord_311 @311
+ord_312 @312
+ord_313 @313
+ord_314 @314
+ord_315 @315
+ord_316 @316
+ord_318 @318
+ord_319 @319
+ord_320 @320
+ord_321 @321
+IECompatLogCSSFix
+ord_323 @323
+ord_324 @324
+ord_395 @395
+ord_400 @400
+ord_401 @401
+ord_403 @403
+ord_404 @404
+ord_406 @406
+ord_407 @407
+ord_408 @408
+ord_409 @409
+ord_410 @410
+ord_411 @411
+ord_412 @412
+ord_413 @413
+ord_414 @414
+ord_415 @415
+ord_416 @416
+ord_417 @417
+ord_421 @421
+ord_422 @422
+ord_423 @423
+ord_430 @430
+ord_431 @431
+ord_432 @432
+ord_433 @433
+ord_434 @434
+ord_435 @435
+ord_436 @436
+ord_437 @437
+ord_438 @438
+ord_439 @439
+ord_440 @440
+ord_441 @441
+ord_442 @442
+ord_443 @443
+ord_444 @444
+ord_445 @445
+ord_446 @446
+ord_447 @447
+ord_448 @448
+ord_449 @449
+ord_450 @450
+ord_451 @451
+ord_452 @452
+ord_453 @453
+ord_454 @454
+ord_455 @455
+ord_456 @456
+ord_457 @457
+ord_458 @458
+ord_460 @460
+ord_461 @461
+ord_462 @462
+ord_463 @463
+ord_470 @470
+ord_471 @471
+ord_473 @473
+ord_474 @474
+ord_475 @475
+ord_476 @476
+ord_477 @477
+ord_478 @478
+ord_479 @479
+ord_480 @480
+ord_481 @481
+ord_482 @482
+ord_483 @483
+ord_484 @484
+ord_485 @485
+ord_486 @486
+ord_487 @487
+ord_488 @488
+ord_489 @489
+ord_490 @490
+ord_491 @491
+ord_492 @492
+ord_494 @494
+ord_495 @495
+ord_496 @496
+ord_497 @497
+ord_498 @498
+ord_499 @499
+ord_500 @500
+ord_501 @501
+ord_502 @502
+ord_503 @503
+ord_504 @504
+ord_505 @505
+ord_506 @506
+ord_507 @507
+ord_508 @508
+ord_509 @509
+ord_510 @510
+ord_511 @511
+ord_512 @512
+ord_513 @513
+ord_514 @514
+ord_515 @515
+ord_516 @516
+ord_517 @517
+ord_518 @518
+ord_519 @519
+ord_520 @520
+ord_521 @521
+ord_522 @522
+ord_523 @523
+ord_524 @524
+ord_525 @525
+ord_526 @526
+ord_527 @527
+ord_528 @528
+ord_529 @529
+ord_530 @530
+ord_531 @531
+ord_532 @532
+ord_533 @533
+ord_534 @534
+ord_535 @535
+ord_536 @536
+ord_537 @537
+ord_538 @538
+ord_539 @539
+ord_540 @540
+ord_541 @541
+ord_542 @542
+ord_543 @543
+ord_544 @544
+ord_545 @545
+ord_546 @546
+ord_547 @547
+ord_548 @548
diff --git a/lib/libc/mingw/libarm32/wintrust.def b/lib/libc/mingw/libarm32/wintrust.def
@@ -0,0 +1,150 @@
+;
+; Definition file of WINTRUST.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008-2014
+;
+LIBRARY "WINTRUST.dll"
+EXPORTS
+CryptCATVerifyMember
+CryptSIPGetInfo
+CryptSIPGetRegWorkingFlags
+GenericChainCertificateTrust
+GenericChainFinalProv
+HTTPSCertificateTrust
+SoftpubDefCertInit
+SoftpubFreeDefUsageCallData
+SoftpubLoadDefUsageCallData
+WTHelperCertFindIssuerCertificate
+AddPersonalTrustDBPages
+CatalogCompactHashDatabase
+CryptCATAdminAcquireContext
+CryptCATAdminAcquireContext2
+CryptCATAdminAddCatalog
+CryptCATAdminCalcHashFromFileHandle
+CryptCATAdminCalcHashFromFileHandle2
+CryptCATAdminEnumCatalogFromHash
+CryptCATAdminPauseServiceForBackup
+CryptCATAdminReleaseCatalogContext
+CryptCATAdminReleaseContext
+CryptCATAdminRemoveCatalog
+CryptCATAdminResolveCatalogPath
+CryptCATAllocSortedMemberInfo
+CryptCATCDFClose
+CryptCATCDFEnumAttributes
+CryptCATCDFEnumAttributesWithCDFTag
+CryptCATCDFEnumCatAttributes
+CryptCATCDFEnumMembers
+CryptCATCDFEnumMembersByCDFTag
+CryptCATCDFEnumMembersByCDFTagEx
+CryptCATCDFOpen
+CryptCATCatalogInfoFromContext
+CryptCATClose
+CryptCATEnumerateAttr
+CryptCATEnumerateCatAttr
+CryptCATEnumerateMember
+CryptCATFreeSortedMemberInfo
+CryptCATGetAttrInfo
+CryptCATGetCatAttrInfo
+CryptCATGetMemberInfo
+CryptCATHandleFromStore
+CryptCATOpen
+CryptCATPersistStore
+CryptCATPutAttrInfo
+CryptCATPutCatAttrInfo
+CryptCATPutMemberInfo
+CryptCATStoreFromHandle
+CryptSIPCreateIndirectData
+CryptSIPGetCaps
+CryptSIPGetSealedDigest
+CryptSIPGetSignedDataMsg
+CryptSIPPutSignedDataMsg
+CryptSIPRemoveSignedDataMsg
+CryptSIPVerifyIndirectData
+DriverCleanupPolicy
+DriverFinalPolicy
+DriverInitializePolicy
+FindCertsByIssuer
+HTTPSFinalProv
+IsCatalogFile
+MsCatConstructHashTag
+MsCatFreeHashTag
+OfficeCleanupPolicy
+OfficeInitializePolicy
+OpenPersonalTrustDBDialog
+OpenPersonalTrustDBDialogEx
+SoftpubAuthenticode
+SoftpubCheckCert
+SoftpubCleanup
+SoftpubDllRegisterServer
+SoftpubDllUnregisterServer
+SoftpubDumpStructure
+SoftpubInitialize
+SoftpubLoadMessage
+SoftpubLoadSignature
+TrustDecode
+TrustFindIssuerCertificate
+TrustFreeDecode
+TrustIsCertificateSelfSigned
+TrustOpenStores
+WTGetSignatureInfo
+WTHelperCertCheckValidSignature
+WTHelperCertIsSelfSigned
+WTHelperCheckCertUsage
+WTHelperGetAgencyInfo
+WTHelperGetFileHandle
+WTHelperGetFileHash
+WTHelperGetFileName
+WTHelperGetKnownUsages
+WTHelperGetProvCertFromChain
+WTHelperGetProvPrivateDataFromChain
+WTHelperGetProvSignerFromChain
+WTHelperIsChainedToMicrosoft
+WTHelperIsChainedToMicrosoftFromStateData
+WTHelperIsInRootStore
+WTHelperOpenKnownStores
+WTHelperProvDataFromStateData
+WVTAsn1CatMemberInfo2Decode
+WVTAsn1CatMemberInfo2Encode
+WVTAsn1CatMemberInfoDecode
+WVTAsn1CatMemberInfoEncode
+WVTAsn1CatNameValueDecode
+WVTAsn1CatNameValueEncode
+WVTAsn1IntentToSealAttributeDecode
+WVTAsn1IntentToSealAttributeEncode
+WVTAsn1SealingSignatureAttributeDecode
+WVTAsn1SealingSignatureAttributeEncode
+WVTAsn1SealingTimestampAttributeDecode
+WVTAsn1SealingTimestampAttributeEncode
+WVTAsn1SpcFinancialCriteriaInfoDecode
+WVTAsn1SpcFinancialCriteriaInfoEncode
+WVTAsn1SpcIndirectDataContentDecode
+WVTAsn1SpcIndirectDataContentEncode
+WVTAsn1SpcLinkDecode
+WVTAsn1SpcLinkEncode
+WVTAsn1SpcMinimalCriteriaInfoDecode
+WVTAsn1SpcMinimalCriteriaInfoEncode
+WVTAsn1SpcPeImageDataDecode
+WVTAsn1SpcPeImageDataEncode
+WVTAsn1SpcSigInfoDecode
+WVTAsn1SpcSigInfoEncode
+WVTAsn1SpcSpAgencyInfoDecode
+WVTAsn1SpcSpAgencyInfoEncode
+WVTAsn1SpcSpOpusInfoDecode
+WVTAsn1SpcSpOpusInfoEncode
+WVTAsn1SpcStatementTypeDecode
+WVTAsn1SpcStatementTypeEncode
+WinVerifyTrust
+WinVerifyTrustEx
+WintrustAddActionID
+WintrustAddDefaultForUsage
+WintrustCertificateTrust
+WintrustGetDefaultForUsage
+WintrustGetRegPolicyFlags
+WintrustLoadFunctionPointers
+WintrustRemoveActionID
+WintrustSetDefaultIncludePEPageHashes
+WintrustSetRegPolicyFlags
+mscat32DllRegisterServer
+mscat32DllUnregisterServer
+mssip32DllRegisterServer
+mssip32DllUnregisterServer
diff --git a/lib/std/child_process.zig b/lib/std/child_process.zig
@@ -365,7 +365,8 @@ pub const ChildProcess = struct {
os.setreuid(uid, uid) catch |err| forkChildErrReport(err_pipe[1], err);
}
- os.execve(self.allocator, self.argv, env_map) catch |err| forkChildErrReport(err_pipe[1], err);
+ const err = os.execvpe(self.allocator, self.argv, env_map);
+ forkChildErrReport(err_pipe[1], err);
}
// we are the parent
diff --git a/lib/std/debug.zig b/lib/std/debug.zig
@@ -280,14 +280,23 @@ pub const StackIterator = struct {
};
}
+ // On some architectures such as x86 the frame pointer is the address where
+ // the previous fp is stored, while on some other architectures such as
+ // RISC-V it points to the "top" of the frame, just above where the previous
+ // fp and the return address are stored.
+ const fp_adjust_factor = if (builtin.arch == .riscv32 or builtin.arch == .riscv64)
+ 2 * @sizeOf(usize)
+ else
+ 0;
+
fn next(self: *StackIterator) ?usize {
- if (self.fp == 0) return null;
- self.fp = @intToPtr(*const usize, self.fp).*;
- if (self.fp == 0) return null;
+ if (self.fp <= fp_adjust_factor) return null;
+ self.fp = @intToPtr(*const usize, self.fp - fp_adjust_factor).*;
+ if (self.fp <= fp_adjust_factor) return null;
if (self.first_addr) |addr| {
- while (self.fp != 0) : (self.fp = @intToPtr(*const usize, self.fp).*) {
- const return_address = @intToPtr(*const usize, self.fp + @sizeOf(usize)).*;
+ while (self.fp > fp_adjust_factor) : (self.fp = @intToPtr(*const usize, self.fp - fp_adjust_factor).*) {
+ const return_address = @intToPtr(*const usize, self.fp - fp_adjust_factor + @sizeOf(usize)).*;
if (addr == return_address) {
self.first_addr = null;
return return_address;
@@ -295,7 +304,7 @@ pub const StackIterator = struct {
}
}
- const return_address = @intToPtr(*const usize, self.fp + @sizeOf(usize)).*;
+ const return_address = @intToPtr(*const usize, self.fp - fp_adjust_factor + @sizeOf(usize)).*;
return return_address;
}
};
diff --git a/lib/std/elf.zig b/lib/std/elf.zig
@@ -338,6 +338,7 @@ pub const Arch = enum {
IA_64,
x86_64,
AArch64,
+ RiscV,
};
pub const SectionHeader = struct {
@@ -428,6 +429,7 @@ pub const Elf = struct {
0x32 => Arch.IA_64,
0x3E => Arch.x86_64,
0xb7 => Arch.AArch64,
+ 0xf3 => Arch.RiscV,
else => return error.InvalidFormat,
};
diff --git a/lib/std/fs.zig b/lib/std/fs.zig
@@ -27,7 +27,6 @@ pub const GetAppDataDirError = @import("fs/get_app_data_dir.zig").GetAppDataDirE
/// This represents the maximum size of a UTF-8 encoded file path.
/// All file system operations which return a path are guaranteed to
/// fit into a UTF-8 encoded array of this length.
-/// path being too long if it is this 0long
pub const MAX_PATH_BYTES = switch (builtin.os) {
.linux, .macosx, .ios, .freebsd, .netbsd => os.PATH_MAX,
// Each UTF-16LE character may be expanded to 3 UTF-8 bytes.
diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig
@@ -269,9 +269,17 @@ pub const File = struct {
pub const UpdateTimesError = os.FutimensError || windows.SetFileTimeError;
- /// `atime`: access timestamp in nanoseconds
- /// `mtime`: last modification timestamp in nanoseconds
- pub fn updateTimes(self: File, atime: i64, mtime: i64) UpdateTimesError!void {
+ /// The underlying file system may have a different granularity than nanoseconds,
+ /// and therefore this function cannot guarantee any precision will be stored.
+ /// Further, the maximum value is limited by the system ABI. When a value is provided
+ /// that exceeds this range, the value is clamped to the maximum.
+ pub fn updateTimes(
+ self: File,
+ /// access timestamp in nanoseconds
+ atime: i64,
+ /// last modification timestamp in nanoseconds
+ mtime: i64,
+ ) UpdateTimesError!void {
if (windows.is_the_target) {
const atime_ft = windows.nanoSecondsToFileTime(atime);
const mtime_ft = windows.nanoSecondsToFileTime(mtime);
@@ -279,12 +287,12 @@ pub const File = struct {
}
const times = [2]os.timespec{
os.timespec{
- .tv_sec = @divFloor(atime, std.time.ns_per_s),
- .tv_nsec = @mod(atime, std.time.ns_per_s),
+ .tv_sec = math.cast(isize, @divFloor(atime, std.time.ns_per_s)) catch maxInt(isize),
+ .tv_nsec = math.cast(isize, @mod(atime, std.time.ns_per_s)) catch maxInt(isize),
},
os.timespec{
- .tv_sec = @divFloor(mtime, std.time.ns_per_s),
- .tv_nsec = @mod(mtime, std.time.ns_per_s),
+ .tv_sec = math.cast(isize, @divFloor(mtime, std.time.ns_per_s)) catch maxInt(isize),
+ .tv_nsec = math.cast(isize, @mod(mtime, std.time.ns_per_s)) catch maxInt(isize),
},
};
try os.futimens(self.handle, ×);
diff --git a/lib/std/hash.zig b/lib/std/hash.zig
@@ -3,6 +3,8 @@ pub const Adler32 = adler.Adler32;
const auto_hash = @import("hash/auto_hash.zig");
pub const autoHash = auto_hash.autoHash;
+pub const autoHashStrat = auto_hash.hash;
+pub const Strategy = auto_hash.HashStrategy;
// pub for polynomials + generic crc32 construction
pub const crc = @import("hash/crc.zig");
diff --git a/lib/std/hash_map.zig b/lib/std/hash_map.zig
@@ -36,7 +36,8 @@ pub fn HashMap(comptime K: type, comptime V: type, comptime hash: fn (key: K) u3
size: usize,
max_distance_from_start_index: usize,
allocator: *Allocator,
- // this is used to detect bugs where a hashtable is edited while an iterator is running.
+
+ /// This is used to detect bugs where a hashtable is edited while an iterator is running.
modification_count: debug_u32,
const Self = @This();
@@ -550,3 +551,13 @@ pub fn getAutoEqlFn(comptime K: type) (fn (K, K) bool) {
}
}.eql;
}
+
+pub fn getAutoHashStratFn(comptime K: type, comptime strategy: std.hash.Strategy) (fn (K) u32) {
+ return struct {
+ fn hash(key: K) u32 {
+ var hasher = Wyhash.init(0);
+ std.hash.autoHashStrat(&hasher, key, strategy);
+ return @truncate(u32, hasher.final());
+ }
+ }.hash;
+}
diff --git a/lib/std/io.zig b/lib/std/io.zig
@@ -508,7 +508,7 @@ pub fn BitInStream(endian: builtin.Endian, comptime Error: type) type {
};
}
-/// This is a simple OutStream that writes to a slice, and returns an error
+/// This is a simple OutStream that writes to a fixed buffer, and returns an error
/// when it runs out of space.
pub const SliceOutStream = struct {
pub const Error = error{OutOfSpace};
@@ -1022,33 +1022,6 @@ pub fn Deserializer(comptime endian: builtin.Endian, comptime packing: Packing,
return @bitCast(T, result);
}
- //@TODO: Replace this with @unionInit or whatever when it is added
- // see: #1315
- fn setTag(ptr: var, tag: var) void {
- const T = @typeOf(ptr);
- comptime assert(trait.isPtrTo(builtin.TypeId.Union)(T));
- const U = meta.Child(T);
-
- const info = @typeInfo(U).Union;
- if (info.tag_type) |TagType| {
- comptime assert(TagType == @typeOf(tag));
-
- var ptr_tag = ptr: {
- if (@alignOf(TagType) >= @alignOf(U)) break :ptr @ptrCast(*TagType, ptr);
- const offset = comptime max: {
- var max_field_size: comptime_int = 0;
- for (info.fields) |field_info| {
- const field_size = @sizeOf(field_info.field_type);
- max_field_size = math.max(max_field_size, field_size);
- }
- break :max math.max(max_field_size, @alignOf(U));
- };
- break :ptr @intToPtr(*TagType, @ptrToInt(ptr) + offset);
- };
- ptr_tag.* = tag;
- }
- }
-
/// Deserializes and returns data of the specified type from the stream
pub fn deserialize(self: *Self, comptime T: type) !T {
var value: T = undefined;
@@ -1111,18 +1084,12 @@ pub fn Deserializer(comptime endian: builtin.Endian, comptime packing: Packing,
// safety. If it is bad, it will be caught anyway.
const TagInt = @TagType(TagType);
const tag = try self.deserializeInt(TagInt);
-
- {
- @setRuntimeSafety(false);
- //See: #1315
- setTag(ptr, @intToEnum(TagType, tag));
- }
-
+
inline for (info.fields) |field_info| {
if (field_info.enum_field.?.value == tag) {
const name = field_info.name;
const FieldType = field_info.field_type;
- @field(ptr, name) = FieldType(undefined);
+ ptr.* = @unionInit(C, name, undefined);
try self.deserializeInto(&@field(ptr, name));
return;
}
diff --git a/lib/std/io/test.zig b/lib/std/io/test.zig
@@ -629,3 +629,21 @@ test "File seek ops" {
try file.seekTo(1234);
std.testing.expect((try file.getPos()) == 1234);
}
+
+test "updateTimes" {
+ const tmp_file_name = "just_a_temporary_file.txt";
+ var file = try File.openWrite(tmp_file_name);
+ defer {
+ file.close();
+ std.fs.deleteFile(tmp_file_name) catch {};
+ }
+ var stat_old = try file.stat();
+ // Set atime and mtime to 5s before
+ try file.updateTimes(
+ stat_old.atime - 5 * std.time.ns_per_s,
+ stat_old.mtime - 5 * std.time.ns_per_s,
+ );
+ var stat_new = try file.stat();
+ std.testing.expect(stat_new.atime < stat_old.atime);
+ std.testing.expect(stat_new.mtime < stat_old.mtime);
+}
diff --git a/lib/std/json.zig b/lib/std/json.zig
@@ -8,6 +8,8 @@ const testing = std.testing;
const mem = std.mem;
const maxInt = std.math.maxInt;
+pub const WriteStream = @import("json/write_stream.zig").WriteStream;
+
// A single token slice into the parent string.
//
// Use `token.slice()` on the input at the current position to get the current slice.
@@ -1001,6 +1003,7 @@ pub const ValueTree = struct {
};
pub const ObjectMap = StringHashMap(Value);
+pub const Array = ArrayList(Value);
pub const Value = union(enum) {
Null,
@@ -1008,7 +1011,7 @@ pub const Value = union(enum) {
Integer: i64,
Float: f64,
String: []const u8,
- Array: ArrayList(Value),
+ Array: Array,
Object: ObjectMap,
pub fn dump(self: Value) void {
@@ -1134,7 +1137,7 @@ pub const Parser = struct {
state: State,
copy_strings: bool,
// Stores parent nodes and un-combined Values.
- stack: ArrayList(Value),
+ stack: Array,
const State = enum {
ObjectKey,
@@ -1148,7 +1151,7 @@ pub const Parser = struct {
.allocator = allocator,
.state = State.Simple,
.copy_strings = copy_strings,
- .stack = ArrayList(Value).init(allocator),
+ .stack = Array.init(allocator),
};
}
@@ -1210,7 +1213,7 @@ pub const Parser = struct {
p.state = State.ObjectKey;
},
Token.Id.ArrayBegin => {
- try p.stack.append(Value{ .Array = ArrayList(Value).init(allocator) });
+ try p.stack.append(Value{ .Array = Array.init(allocator) });
p.state = State.ArrayValue;
},
Token.Id.String => {
@@ -1260,7 +1263,7 @@ pub const Parser = struct {
p.state = State.ObjectKey;
},
Token.Id.ArrayBegin => {
- try p.stack.append(Value{ .Array = ArrayList(Value).init(allocator) });
+ try p.stack.append(Value{ .Array = Array.init(allocator) });
p.state = State.ArrayValue;
},
Token.Id.String => {
@@ -1289,7 +1292,7 @@ pub const Parser = struct {
p.state = State.ObjectKey;
},
Token.Id.ArrayBegin => {
- try p.stack.append(Value{ .Array = ArrayList(Value).init(allocator) });
+ try p.stack.append(Value{ .Array = Array.init(allocator) });
p.state = State.ArrayValue;
},
Token.Id.String => {
@@ -1405,3 +1408,50 @@ test "json.parser.dynamic" {
test "import more json tests" {
_ = @import("json/test.zig");
}
+
+test "write json then parse it" {
+ var out_buffer: [1000]u8 = undefined;
+
+ var slice_out_stream = std.io.SliceOutStream.init(&out_buffer);
+ const out_stream = &slice_out_stream.stream;
+ var jw = WriteStream(@typeOf(out_stream).Child, 4).init(out_stream);
+
+ try jw.beginObject();
+
+ try jw.objectField("f");
+ try jw.emitBool(false);
+
+ try jw.objectField("t");
+ try jw.emitBool(true);
+
+ try jw.objectField("int");
+ try jw.emitNumber(i32(1234));
+
+ try jw.objectField("array");
+ try jw.beginArray();
+
+ try jw.arrayElem();
+ try jw.emitNull();
+
+ try jw.arrayElem();
+ try jw.emitNumber(f64(12.34));
+
+ try jw.endArray();
+
+ try jw.objectField("str");
+ try jw.emitString("hello");
+
+ try jw.endObject();
+
+ var mem_buffer: [1024 * 20]u8 = undefined;
+ const allocator = &std.heap.FixedBufferAllocator.init(&mem_buffer).allocator;
+ var parser = Parser.init(allocator, false);
+ const tree = try parser.parse(slice_out_stream.getWritten());
+
+ testing.expect(tree.root.Object.get("f").?.value.Bool == false);
+ testing.expect(tree.root.Object.get("t").?.value.Bool == true);
+ testing.expect(tree.root.Object.get("int").?.value.Integer == 1234);
+ testing.expect(tree.root.Object.get("array").?.value.Array.at(0).Null == {});
+ testing.expect(tree.root.Object.get("array").?.value.Array.at(1).Float == 12.34);
+ testing.expect(mem.eql(u8, tree.root.Object.get("str").?.value.String, "hello"));
+}
diff --git a/lib/std/json/write_stream.zig b/lib/std/json/write_stream.zig
@@ -0,0 +1,218 @@
+const std = @import("../std.zig");
+const assert = std.debug.assert;
+const maxInt = std.math.maxInt;
+
+const State = enum {
+ Complete,
+ Value,
+ ArrayStart,
+ Array,
+ ObjectStart,
+ Object,
+};
+
+/// Writes JSON ([RFC8259](https://tools.ietf.org/html/rfc8259)) formatted data
+/// to a stream. `max_depth` is a comptime-known upper bound on the nesting depth.
+/// TODO A future iteration of this API will allow passing `null` for this value,
+/// and disable safety checks in release builds.
+pub fn WriteStream(comptime OutStream: type, comptime max_depth: usize) type {
+ return struct {
+ const Self = @This();
+
+ pub const Stream = OutStream;
+
+ /// The string used for indenting.
+ one_indent: []const u8 = " ",
+
+ /// The string used as a newline character.
+ newline: []const u8 = "\n",
+
+ stream: *OutStream,
+ state_index: usize,
+ state: [max_depth]State,
+
+ pub fn init(stream: *OutStream) Self {
+ var self = Self{
+ .stream = stream,
+ .state_index = 1,
+ .state = undefined,
+ };
+ self.state[0] = .Complete;
+ self.state[1] = .Value;
+ return self;
+ }
+
+ pub fn beginArray(self: *Self) !void {
+ assert(self.state[self.state_index] == State.Value); // need to call arrayElem or objectField
+ try self.stream.writeByte('[');
+ self.state[self.state_index] = State.ArrayStart;
+ }
+
+ pub fn beginObject(self: *Self) !void {
+ assert(self.state[self.state_index] == State.Value); // need to call arrayElem or objectField
+ try self.stream.writeByte('{');
+ self.state[self.state_index] = State.ObjectStart;
+ }
+
+ pub fn arrayElem(self: *Self) !void {
+ const state = self.state[self.state_index];
+ switch (state) {
+ .Complete => unreachable,
+ .Value => unreachable,
+ .ObjectStart => unreachable,
+ .Object => unreachable,
+ .Array, .ArrayStart => {
+ if (state == .Array) {
+ try self.stream.writeByte(',');
+ }
+ self.state[self.state_index] = .Array;
+ self.pushState(.Value);
+ try self.indent();
+ },
+ }
+ }
+
+ pub fn objectField(self: *Self, name: []const u8) !void {
+ const state = self.state[self.state_index];
+ switch (state) {
+ .Complete => unreachable,
+ .Value => unreachable,
+ .ArrayStart => unreachable,
+ .Array => unreachable,
+ .Object, .ObjectStart => {
+ if (state == .Object) {
+ try self.stream.writeByte(',');
+ }
+ self.state[self.state_index] = .Object;
+ self.pushState(.Value);
+ try self.indent();
+ try self.writeEscapedString(name);
+ try self.stream.write(": ");
+ },
+ }
+ }
+
+ pub fn endArray(self: *Self) !void {
+ switch (self.state[self.state_index]) {
+ .Complete => unreachable,
+ .Value => unreachable,
+ .ObjectStart => unreachable,
+ .Object => unreachable,
+ .ArrayStart => {
+ try self.stream.writeByte(']');
+ self.popState();
+ },
+ .Array => {
+ try self.indent();
+ self.popState();
+ try self.stream.writeByte(']');
+ },
+ }
+ }
+
+ pub fn endObject(self: *Self) !void {
+ switch (self.state[self.state_index]) {
+ .Complete => unreachable,
+ .Value => unreachable,
+ .ArrayStart => unreachable,
+ .Array => unreachable,
+ .ObjectStart => {
+ try self.stream.writeByte('}');
+ self.popState();
+ },
+ .Object => {
+ try self.indent();
+ self.popState();
+ try self.stream.writeByte('}');
+ },
+ }
+ }
+
+ pub fn emitNull(self: *Self) !void {
+ assert(self.state[self.state_index] == State.Value);
+ try self.stream.write("null");
+ self.popState();
+ }
+
+ pub fn emitBool(self: *Self, value: bool) !void {
+ assert(self.state[self.state_index] == State.Value);
+ if (value) {
+ try self.stream.write("true");
+ } else {
+ try self.stream.write("false");
+ }
+ self.popState();
+ }
+
+ pub fn emitNumber(
+ self: *Self,
+ /// An integer, float, or `std.math.BigInt`. Emitted as a bare number if it fits losslessly
+ /// in a IEEE 754 double float, otherwise emitted as a string to the full precision.
+ value: var,
+ ) !void {
+ assert(self.state[self.state_index] == State.Value);
+ switch (@typeInfo(@typeOf(value))) {
+ .Int => |info| {
+ if (info.bits < 53) {
+ try self.stream.print("{}", value);
+ self.popState();
+ return;
+ }
+ if (value < 4503599627370496 and (!info.is_signed or value > -4503599627370496)) {
+ try self.stream.print("{}", value);
+ self.popState();
+ return;
+ }
+ },
+ .Float => if (@floatCast(f64, value) == value) {
+ try self.stream.print("{}", value);
+ self.popState();
+ return;
+ },
+ else => {},
+ }
+ try self.stream.print("\"{}\"", value);
+ self.popState();
+ }
+
+ pub fn emitString(self: *Self, string: []const u8) !void {
+ try self.writeEscapedString(string);
+ self.popState();
+ }
+
+ fn writeEscapedString(self: *Self, string: []const u8) !void {
+ try self.stream.writeByte('"');
+ for (string) |s| {
+ switch (s) {
+ '"' => try self.stream.write("\\\""),
+ '\t' => try self.stream.write("\\t"),
+ '\r' => try self.stream.write("\\r"),
+ '\n' => try self.stream.write("\\n"),
+ 8 => try self.stream.write("\\b"),
+ 12 => try self.stream.write("\\f"),
+ '\\' => try self.stream.write("\\\\"),
+ else => try self.stream.writeByte(s),
+ }
+ }
+ try self.stream.writeByte('"');
+ }
+
+ fn indent(self: *Self) !void {
+ assert(self.state_index >= 1);
+ try self.stream.write(self.newline);
+ var i: usize = 0;
+ while (i < self.state_index - 1) : (i += 1) {
+ try self.stream.write(self.one_indent);
+ }
+ }
+
+ fn pushState(self: *Self, state: State) void {
+ self.state_index += 1;
+ self.state[self.state_index] = state;
+ }
+
+ fn popState(self: *Self) void {
+ self.state_index -= 1;
+ }
+ };
+}
diff --git a/lib/std/mem.zig b/lib/std/mem.zig
@@ -1325,6 +1325,12 @@ fn AsBytesReturnType(comptime P: type) type {
const size = usize(@sizeOf(meta.Child(P)));
const alignment = comptime meta.alignment(P);
+ if (alignment == 0) {
+ if (comptime trait.isConstPtr(P))
+ return *const [size]u8;
+ return *[size]u8;
+ }
+
if (comptime trait.isConstPtr(P))
return *align(alignment) const [size]u8;
return *align(alignment) [size]u8;
@@ -1364,6 +1370,10 @@ test "asBytes" {
.d = 0xA1,
};
testing.expect(eql(u8, asBytes(&inst), "\xBE\xEF\xDE\xA1"));
+
+ const ZST = struct {};
+ const zero = ZST{};
+ testing.expect(eql(u8, asBytes(&zero), ""));
}
///Given any value, returns a copy of its bytes in an array.
diff --git a/lib/std/meta.zig b/lib/std/meta.zig
@@ -542,3 +542,13 @@ pub fn intToEnum(comptime Tag: type, tag_int: var) IntToEnumError!Tag {
}
return error.InvalidEnumTag;
}
+
+/// Given a type and a name, return the field index according to source order.
+/// Returns `null` if the field is not found.
+pub fn fieldIndex(comptime T: type, comptime name: []const u8) ?comptime_int {
+ inline for (fields(T)) |field, i| {
+ if (mem.eql(u8, field.name, name))
+ return comptime_int(i);
+ }
+ return null;
+}
diff --git a/lib/std/os.zig b/lib/std/os.zig
@@ -642,13 +642,86 @@ pub fn dup2(old_fd: fd_t, new_fd: fd_t) !void {
}
}
+pub const ExecveError = error{
+ SystemResources,
+ AccessDenied,
+ InvalidExe,
+ FileSystem,
+ IsDir,
+ FileNotFound,
+ NotDir,
+ FileBusy,
+ ProcessFdQuotaExceeded,
+ SystemFdQuotaExceeded,
+ NameTooLong,
+} || UnexpectedError;
+
+/// Like `execve` except the parameters are null-terminated,
+/// matching the syscall API on all targets. This removes the need for an allocator.
+/// This function ignores PATH environment variable. See `execvpeC` for that.
+pub fn execveC(path: [*]const u8, child_argv: [*]const ?[*]const u8, envp: [*]const ?[*]const u8) ExecveError {
+ switch (errno(system.execve(path, child_argv, envp))) {
+ 0 => unreachable,
+ EFAULT => unreachable,
+ E2BIG => return error.SystemResources,
+ EMFILE => return error.ProcessFdQuotaExceeded,
+ ENAMETOOLONG => return error.NameTooLong,
+ ENFILE => return error.SystemFdQuotaExceeded,
+ ENOMEM => return error.SystemResources,
+ EACCES => return error.AccessDenied,
+ EPERM => return error.AccessDenied,
+ EINVAL => return error.InvalidExe,
+ ENOEXEC => return error.InvalidExe,
+ EIO => return error.FileSystem,
+ ELOOP => return error.FileSystem,
+ EISDIR => return error.IsDir,
+ ENOENT => return error.FileNotFound,
+ ENOTDIR => return error.NotDir,
+ ETXTBSY => return error.FileBusy,
+ else => |err| return unexpectedErrno(err),
+ }
+}
+
+/// Like `execvpe` except the parameters are null-terminated,
+/// matching the syscall API on all targets. This removes the need for an allocator.
+/// This function also uses the PATH environment variable to get the full path to the executable.
+/// If `file` is an absolute path, this is the same as `execveC`.
+pub fn execvpeC(file: [*]const u8, child_argv: [*]const ?[*]const u8, envp: [*]const ?[*]const u8) ExecveError {
+ const file_slice = mem.toSliceConst(u8, file);
+ if (mem.indexOfScalar(u8, file_slice, '/') != null) return execveC(file, child_argv, envp);
+
+ const PATH = getenv("PATH") orelse "/usr/local/bin:/bin/:/usr/bin";
+ var path_buf: [MAX_PATH_BYTES]u8 = undefined;
+ var it = mem.tokenize(PATH, ":");
+ var seen_eacces = false;
+ var err: ExecveError = undefined;
+ while (it.next()) |search_path| {
+ if (path_buf.len < search_path.len + file_slice.len + 1) return error.NameTooLong;
+ mem.copy(u8, &path_buf, search_path);
+ path_buf[search_path.len] = '/';
+ mem.copy(u8, path_buf[search_path.len + 1 ..], file_slice);
+ path_buf[search_path.len + file_slice.len + 1] = 0;
+ err = execveC(&path_buf, child_argv, envp);
+ switch (err) {
+ error.AccessDenied => seen_eacces = true,
+ error.FileNotFound, error.NotDir => {},
+ else => |e| return e,
+ }
+ }
+ if (seen_eacces) return error.AccessDenied;
+ return err;
+}
+
/// This function must allocate memory to add a null terminating bytes on path and each arg.
/// It must also convert to KEY=VALUE\0 format for environment variables, and include null
/// pointers after the args and after the environment variables.
-/// `argv[0]` is the executable path.
+/// `argv_slice[0]` is the executable path.
/// This function also uses the PATH environment variable to get the full path to the executable.
-/// TODO provide execveC which does not take an allocator
-pub fn execve(allocator: *mem.Allocator, argv_slice: []const []const u8, env_map: *const std.BufMap) !void {
+pub fn execvpe(
+ allocator: *mem.Allocator,
+ argv_slice: []const []const u8,
+ env_map: *const std.BufMap,
+) (ExecveError || error{OutOfMemory}) {
const argv_buf = try allocator.alloc(?[*]u8, argv_slice.len + 1);
mem.set(?[*]u8, argv_buf, null);
defer {
@@ -670,37 +743,7 @@ pub fn execve(allocator: *mem.Allocator, argv_slice: []const []const u8, env_map
const envp_buf = try createNullDelimitedEnvMap(allocator, env_map);
defer freeNullDelimitedEnvMap(allocator, envp_buf);
- const exe_path = argv_slice[0];
- if (mem.indexOfScalar(u8, exe_path, '/') != null) {
- return execveErrnoToErr(errno(system.execve(argv_buf[0].?, argv_buf.ptr, envp_buf.ptr)));
- }
-
- const PATH = getenv("PATH") orelse "/usr/local/bin:/bin/:/usr/bin";
- // PATH.len because it is >= the largest search_path
- // +1 for the / to join the search path and exe_path
- // +1 for the null terminating byte
- const path_buf = try allocator.alloc(u8, PATH.len + exe_path.len + 2);
- defer allocator.free(path_buf);
- var it = mem.tokenize(PATH, ":");
- var seen_eacces = false;
- var err: usize = undefined;
- while (it.next()) |search_path| {
- mem.copy(u8, path_buf, search_path);
- path_buf[search_path.len] = '/';
- mem.copy(u8, path_buf[search_path.len + 1 ..], exe_path);
- path_buf[search_path.len + exe_path.len + 1] = 0;
- err = errno(system.execve(path_buf.ptr, argv_buf.ptr, envp_buf.ptr));
- assert(err > 0);
- if (err == EACCES) {
- seen_eacces = true;
- } else if (err != ENOENT) {
- return execveErrnoToErr(err);
- }
- }
- if (seen_eacces) {
- err = EACCES;
- }
- return execveErrnoToErr(err);
+ return execvpeC(argv_buf.ptr[0].?, argv_buf.ptr, envp_buf.ptr);
}
pub fn createNullDelimitedEnvMap(allocator: *mem.Allocator, env_map: *const std.BufMap) ![]?[*]u8 {
@@ -734,43 +777,6 @@ pub fn freeNullDelimitedEnvMap(allocator: *mem.Allocator, envp_buf: []?[*]u8) vo
allocator.free(envp_buf);
}
-pub const ExecveError = error{
- SystemResources,
- AccessDenied,
- InvalidExe,
- FileSystem,
- IsDir,
- FileNotFound,
- NotDir,
- FileBusy,
- ProcessFdQuotaExceeded,
- SystemFdQuotaExceeded,
- NameTooLong,
-} || UnexpectedError;
-
-fn execveErrnoToErr(err: usize) ExecveError {
- assert(err > 0);
- switch (err) {
- EFAULT => unreachable,
- E2BIG => return error.SystemResources,
- EMFILE => return error.ProcessFdQuotaExceeded,
- ENAMETOOLONG => return error.NameTooLong,
- ENFILE => return error.SystemFdQuotaExceeded,
- ENOMEM => return error.SystemResources,
- EACCES => return error.AccessDenied,
- EPERM => return error.AccessDenied,
- EINVAL => return error.InvalidExe,
- ENOEXEC => return error.InvalidExe,
- EIO => return error.FileSystem,
- ELOOP => return error.FileSystem,
- EISDIR => return error.IsDir,
- ENOENT => return error.FileNotFound,
- ENOTDIR => return error.NotDir,
- ETXTBSY => return error.FileBusy,
- else => return unexpectedErrno(err),
- }
-}
-
/// Get an environment variable.
/// See also `getenvC`.
/// TODO make this go through libc when we have it
diff --git a/lib/std/os/bits/linux.zig b/lib/std/os/bits/linux.zig
@@ -1293,3 +1293,94 @@ pub const utsname = extern struct {
domainname: [65]u8,
};
pub const HOST_NAME_MAX = 64;
+
+pub const STATX_TYPE = 0x0001;
+pub const STATX_MODE = 0x0002;
+pub const STATX_NLINK = 0x0004;
+pub const STATX_UID = 0x0008;
+pub const STATX_GID = 0x0010;
+pub const STATX_ATIME = 0x0020;
+pub const STATX_MTIME = 0x0040;
+pub const STATX_CTIME = 0x0080;
+pub const STATX_INO = 0x0100;
+pub const STATX_SIZE = 0x0200;
+pub const STATX_BLOCKS = 0x0400;
+pub const STATX_BASIC_STATS = 0x07ff;
+
+pub const STATX_BTIME = 0x0800;
+
+pub const STATX_ATTR_COMPRESSED = 0x0004;
+pub const STATX_ATTR_IMMUTABLE = 0x0010;
+pub const STATX_ATTR_APPEND = 0x0020;
+pub const STATX_ATTR_NODUMP = 0x0040;
+pub const STATX_ATTR_ENCRYPTED = 0x0800;
+pub const STATX_ATTR_AUTOMOUNT = 0x1000;
+
+pub const statx_timestamp = extern struct {
+ tv_sec: i64,
+ tv_nsec: u32,
+ __pad1: u32,
+};
+
+/// Renamed to `Statx` to not conflict with the `statx` function.
+pub const Statx = extern struct {
+ /// Mask of bits indicating filled fields
+ mask: u32,
+
+ /// Block size for filesystem I/O
+ blksize: u32,
+
+ /// Extra file attribute indicators
+ attributes: u64,
+
+ /// Number of hard links
+ nlink: u32,
+
+ /// User ID of owner
+ uid: u32,
+
+ /// Group ID of owner
+ gid: u32,
+
+ /// File type and mode
+ mode: u16,
+ __pad1: u16,
+
+ /// Inode number
+ ino: u64,
+
+ /// Total size in bytes
+ size: u64,
+
+ /// Number of 512B blocks allocated
+ blocks: u64,
+
+ /// Mask to show what's supported in `attributes`.
+ attributes_mask: u64,
+
+ /// Last access file timestamp
+ atime: statx_timestamp,
+
+ /// Creation file timestamp
+ btime: statx_timestamp,
+
+ /// Last status change file timestamp
+ ctime: statx_timestamp,
+
+ /// Last modification file timestamp
+ mtime: statx_timestamp,
+
+ /// Major ID, if this file represents a device.
+ rdev_major: u32,
+
+ /// Minor ID, if this file represents a device.
+ rdev_minor: u32,
+
+ /// Major ID of the device containing the filesystem where this file resides.
+ dev_major: u32,
+
+ /// Minor ID of the device containing the filesystem where this file resides.
+ dev_minor: u32,
+
+ __pad2: [14]u64,
+};
diff --git a/lib/std/os/bits/linux/arm-eabi.zig b/lib/std/os/bits/linux/arm-eabi.zig
@@ -6,6 +6,8 @@ const iovec = linux.iovec;
const iovec_const = linux.iovec_const;
const stack_t = linux.stack_t;
const sigset_t = linux.sigset_t;
+const uid_t = linux.uid_t;
+const gid_t = linux.gid_t;
pub const SYS_restart_syscall = 0;
pub const SYS_exit = 1;
@@ -512,7 +514,14 @@ pub const msghdr_const = extern struct {
msg_flags: i32,
};
+pub const blksize_t = i32;
+pub const nlink_t = u32;
+pub const time_t = isize;
+pub const mode_t = u32;
pub const off_t = i64;
+pub const ino_t = u64;
+pub const dev_t = u64;
+pub const blkcnt_t = i64;
/// Renamed to Stat to not conflict with the stat function.
/// atime, mtime, and ctime have functions to return `timespec`,
@@ -521,22 +530,22 @@ pub const off_t = i64;
/// in C, macros are used to hide the differences. Here we use
/// methods to accomplish this.
pub const Stat = extern struct {
- dev: u64,
+ dev: dev_t,
__dev_padding: u32,
__ino_truncated: u32,
- mode: u32,
- nlink: u32,
- uid: u32,
- gid: u32,
- rdev: u64,
+ mode: mode_t,
+ nlink: nlink_t,
+ uid: uid_t,
+ gid: gid_t,
+ rdev: dev_t,
__rdev_padding: u32,
size: off_t,
- blksize: i32,
- blocks: u64,
+ blksize: blksize_t,
+ blocks: blkcnt_t,
atim: timespec,
mtim: timespec,
ctim: timespec,
- ino: u64,
+ ino: ino_t,
pub fn atime(self: Stat) timespec {
return self.atim;
diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig
@@ -860,6 +860,20 @@ pub fn fstatat(dirfd: i32, path: [*]const u8, stat_buf: *Stat, flags: u32) usize
}
}
+pub fn statx(dirfd: i32, path: [*]const u8, flags: u32, mask: u32, statx_buf: *Statx) usize {
+ if (@hasDecl(@This(), "SYS_statx")) {
+ return syscall5(
+ SYS_statx,
+ @bitCast(usize, isize(dirfd)),
+ @ptrToInt(path),
+ flags,
+ mask,
+ @ptrToInt(statx_buf),
+ );
+ }
+ return @bitCast(usize, isize(-ENOSYS));
+}
+
// TODO https://github.com/ziglang/zig/issues/265
pub fn listxattr(path: [*]const u8, list: [*]u8, size: usize) usize {
return syscall3(SYS_listxattr, @ptrToInt(path), @ptrToInt(list), size);
diff --git a/lib/std/os/linux/test.zig b/lib/std/os/linux/test.zig
@@ -44,3 +44,35 @@ test "timer" {
// TODO implicit cast from *[N]T to [*]T
err = linux.epoll_wait(@intCast(i32, epoll_fd), @ptrCast([*]linux.epoll_event, &events), 8, -1);
}
+
+const File = std.fs.File;
+
+test "statx" {
+ const tmp_file_name = "just_a_temporary_file.txt";
+ var file = try File.openWrite(tmp_file_name);
+ defer {
+ file.close();
+ std.fs.deleteFile(tmp_file_name) catch {};
+ }
+
+ var statx_buf: linux.Statx = undefined;
+ switch (linux.getErrno(linux.statx(file.handle, c"", linux.AT_EMPTY_PATH, linux.STATX_BASIC_STATS, &statx_buf))) {
+ 0 => {},
+ // The statx syscall was only introduced in linux 4.11
+ linux.ENOSYS => return error.SkipZigTest,
+ else => unreachable,
+ }
+
+ var stat_buf: linux.Stat = undefined;
+ switch (linux.getErrno(linux.fstatat(file.handle, c"", &stat_buf, linux.AT_EMPTY_PATH))) {
+ 0 => {},
+ else => unreachable,
+ }
+
+ expect(stat_buf.mode == statx_buf.mode);
+ expect(@bitCast(u32, stat_buf.uid) == statx_buf.uid);
+ expect(@bitCast(u32, stat_buf.gid) == statx_buf.gid);
+ expect(@bitCast(u64, i64(stat_buf.size)) == statx_buf.size);
+ expect(@bitCast(u64, i64(stat_buf.blksize)) == statx_buf.blksize);
+ expect(@bitCast(u64, i64(stat_buf.blocks)) == statx_buf.blocks);
+}
diff --git a/lib/std/os/test.zig b/lib/std/os/test.zig
@@ -232,3 +232,8 @@ test "pipe" {
os.close(fds[1]);
os.close(fds[0]);
}
+
+test "argsAlloc" {
+ var args = try std.process.argsAlloc(std.heap.direct_allocator);
+ std.heap.direct_allocator.free(args);
+}
diff --git a/lib/std/os/uefi.zig b/lib/std/os/uefi.zig
@@ -1,15 +1,23 @@
+/// A protocol is an interface identified by a GUID.
pub const protocols = @import("uefi/protocols.zig");
+/// Status codes returned by EFI interfaces
pub const status = @import("uefi/status.zig");
pub const tables = @import("uefi/tables.zig");
+const fmt = @import("std").fmt;
+
const builtin = @import("builtin");
pub const is_the_target = builtin.os == .uefi;
+/// The EFI image's handle that is passed to its entry point.
pub var handle: Handle = undefined;
+/// A pointer to the EFI System Table that is passed to the EFI image's entry point.
pub var system_table: *tables.SystemTable = undefined;
+/// A handle to an event structure.
pub const Event = *@OpaqueType();
-// GUIDs must be align(8)
+
+/// GUIDs must be align(8)
pub const Guid = extern struct {
time_low: u32,
time_mid: u16,
@@ -17,29 +25,66 @@ pub const Guid = extern struct {
clock_seq_high_and_reserved: u8,
clock_seq_low: u8,
node: [6]u8,
+
+ /// Format GUID into hexadecimal lowercase xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx format
+ pub fn format(
+ self: @This(),
+ comptime f: []const u8,
+ options: fmt.FormatOptions,
+ context: var,
+ comptime Errors: type,
+ output: fn (@typeOf(context), []const u8) Errors!void,
+ ) Errors!void {
+ if (f.len == 0) {
+ return fmt.format(context, Errors, output, "{x:0>8}-{x:0>4}-{x:0>4}-{x:0>2}{x:0>2}-{x:0>12}", self.time_low, self.time_mid, self.time_high_and_version, self.clock_seq_high_and_reserved, self.clock_seq_low, self.node);
+ } else {
+ @compileError("Unknown format character: '" ++ f ++ "'");
+ }
+ }
};
+
+/// An EFI Handle represents a collection of related interfaces.
pub const Handle = *@OpaqueType();
+
+/// This structure represents time information.
pub const Time = extern struct {
+ /// 1900 - 9999
year: u16,
+ /// 1 - 12
month: u8,
+ /// 1 - 31
day: u8,
+ /// 0 - 23
hour: u8,
+ /// 0 - 59
minute: u8,
+ /// 0 - 59
second: u8,
_pad1: u8,
+ /// 0 - 999999999
nanosecond: u32,
+ /// The time's offset in minutes from UTC.
+ /// Allowed values are -1440 to 1440 or unspecified_timezone
timezone: i16,
daylight: packed struct {
_pad1: u6,
+ /// If true, the time has been adjusted for daylight savings time.
in_daylight: bool,
+ /// If true, the time is affected by daylight savings time.
adjust_daylight: bool,
},
_pad2: u8,
+ /// Time is to be interpreted as local time
pub const unspecified_timezone: i16 = 0x7ff;
};
+
+/// Capabilities of the clock device
pub const TimeCapabilities = extern struct {
+ /// Resolution in Hz
resolution: u32,
+ /// Accuracy in an error rate of 1e-6 parts per million.
accuracy: u32,
+ /// If true, a time set operation clears the device's time below the resolution level.
sets_to_zero: bool,
};
diff --git a/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig b/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig
@@ -2,17 +2,19 @@ const uefi = @import("std").os.uefi;
const Event = uefi.Event;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.7
+/// Protocol for touchscreens
pub const AbsolutePointerProtocol = extern struct {
_reset: extern fn (*const AbsolutePointerProtocol, bool) usize,
_get_state: extern fn (*const AbsolutePointerProtocol, *AbsolutePointerState) usize,
wait_for_input: Event,
mode: *AbsolutePointerMode,
+ /// Resets the pointer device hardware.
pub fn reset(self: *const AbsolutePointerProtocol, verify: bool) usize {
return self._reset(self, verify);
}
+ /// Retrieves the current state of a pointer device.
pub fn getState(self: *const AbsolutePointerProtocol, state: *AbsolutePointerState) usize {
return self._get_state(self, state);
}
@@ -42,12 +44,12 @@ pub const AbsolutePointerMode = extern struct {
};
pub const AbsolutePointerState = extern struct {
- current_x: u64 = undefined,
- current_y: u64 = undefined,
- current_z: u64 = undefined,
+ current_x: u64,
+ current_y: u64,
+ current_z: u64,
active_buttons: packed struct {
touch_active: bool,
alt_active: bool,
_pad1: u30,
- } = undefined,
+ },
};
diff --git a/lib/std/os/uefi/protocols/edid_active_protocol.zig b/lib/std/os/uefi/protocols/edid_active_protocol.zig
@@ -1,7 +1,7 @@
const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.9
+/// EDID information for an active video output device
pub const EdidActiveProtocol = extern struct {
size_of_edid: u32,
edid: ?[*]u8,
diff --git a/lib/std/os/uefi/protocols/edid_discovered_protocol.zig b/lib/std/os/uefi/protocols/edid_discovered_protocol.zig
@@ -1,7 +1,7 @@
const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.9
+/// EDID information for a video output device
pub const EdidDiscoveredProtocol = extern struct {
size_of_edid: u32,
edid: ?[*]u8,
diff --git a/lib/std/os/uefi/protocols/edid_override_protocol.zig b/lib/std/os/uefi/protocols/edid_override_protocol.zig
@@ -2,10 +2,11 @@ const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
const Handle = uefi.Handle;
-/// UEFI Specification, Version 2.8, 12.9
+/// Override EDID information
pub const EdidOverrideProtocol = extern struct {
_get_edid: extern fn (*const EdidOverrideProtocol, Handle, *u32, *usize, *?[*]u8) usize,
+ /// Returns policy information and potentially a replacement EDID for the specified video output device.
/// attributes must be align(4)
pub fn getEdid(self: *const EdidOverrideProtocol, handle: Handle, attributes: *EdidOverrideProtocolAttributes, edid_size: *usize, edid: *?[*]u8) usize {
return self._get_edid(self, handle, attributes, edid_size, edid);
diff --git a/lib/std/os/uefi/protocols/graphics_output_protocol.zig b/lib/std/os/uefi/protocols/graphics_output_protocol.zig
@@ -1,21 +1,24 @@
const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.9
+/// Graphics output
pub const GraphicsOutputProtocol = extern struct {
_query_mode: extern fn (*const GraphicsOutputProtocol, u32, *usize, **GraphicsOutputModeInformation) usize,
_set_mode: extern fn (*const GraphicsOutputProtocol, u32) usize,
_blt: extern fn (*const GraphicsOutputProtocol, ?[*]GraphicsOutputBltPixel, GraphicsOutputBltOperation, usize, usize, usize, usize, usize, usize, usize) usize,
mode: *GraphicsOutputProtocolMode,
+ /// Returns information for an available graphics mode that the graphics device and the set of active video output devices supports.
pub fn queryMode(self: *const GraphicsOutputProtocol, mode: u32, size_of_info: *usize, info: **GraphicsOutputModeInformation) usize {
return self._query_mode(self, mode, size_of_info, info);
}
+ /// Set the video device into the specified mode and clears the visible portions of the output display to black.
pub fn setMode(self: *const GraphicsOutputProtocol, mode: u32) usize {
return self._set_mode(self, mode);
}
+ /// Blt a rectangle of pixels on the graphics screen. Blt stands for BLock Transfer.
pub fn blt(self: *const GraphicsOutputProtocol, blt_buffer: ?[*]GraphicsOutputBltPixel, blt_operation: GraphicsOutputBltOperation, source_x: usize, source_y: usize, destination_x: usize, destination_y: usize, width: usize, height: usize, delta: usize) usize {
return self._blt(self, blt_buffer, blt_operation, source_x, source_y, destination_x, destination_y, width, height, delta);
}
diff --git a/lib/std/os/uefi/protocols/hii.zig b/lib/std/os/uefi/protocols/hii.zig
@@ -3,6 +3,7 @@ const Guid = uefi.Guid;
pub const HIIHandle = *@OpaqueType();
+/// The header found at the start of each package.
pub const HIIPackageHeader = packed struct {
length: u24,
type: u8,
@@ -22,8 +23,10 @@ pub const HIIPackageHeader = packed struct {
pub const type_system_end: u8 = 0xff;
};
+/// The header found at the start of each package list.
pub const HIIPackageList = extern struct {
package_list_guid: Guid,
+ /// The size of the package list (in bytes), including the header.
package_list_length: u32,
// TODO implement iterator
diff --git a/lib/std/os/uefi/protocols/hii_database_protocol.zig b/lib/std/os/uefi/protocols/hii_database_protocol.zig
@@ -2,6 +2,7 @@ const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
const hii = uefi.protocols.hii;
+/// Database manager for HII-related data structures.
pub const HIIDatabaseProtocol = extern struct {
_new_package_list: usize, // TODO
_remove_package_list: extern fn (*const HIIDatabaseProtocol, hii.HIIHandle) usize,
@@ -15,18 +16,22 @@ pub const HIIDatabaseProtocol = extern struct {
_set_keyboard_layout: usize, // TODO
_get_package_list_handle: usize, // TODO
+ /// Removes a package list from the HII database.
pub fn removePackageList(self: *const HIIDatabaseProtocol, handle: hii.HIIHandle) usize {
return self._remove_package_list(self, handle);
}
+ /// Update a package list in the HII database.
pub fn updatePackageList(self: *const HIIDatabaseProtocol, handle: hii.HIIHandle, buffer: *const hii.HIIPackageList) usize {
return self._update_package_list(self, handle, buffer);
}
+ /// Determines the handles that are currently active in the database.
pub fn listPackageLists(self: *const HIIDatabaseProtocol, package_type: u8, package_guid: ?*const Guid, buffer_length: *usize, handles: [*]hii.HIIHandle) usize {
return self._list_package_lists(self, package_type, package_guid, buffer_length, handles);
}
+ /// Exports the contents of one or all package lists in the HII database into a buffer.
pub fn exportPackageLists(self: *const HIIDatabaseProtocol, handle: ?hii.HIIHandle, buffer_size: *usize, buffer: *hii.HIIPackageList) usize {
return self._export_package_lists(self, handle, buffer_size, buffer);
}
diff --git a/lib/std/os/uefi/protocols/hii_popup_protocol.zig b/lib/std/os/uefi/protocols/hii_popup_protocol.zig
@@ -2,10 +2,12 @@ const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
const hii = uefi.protocols.hii;
+/// Display a popup window
pub const HIIPopupProtocol = extern struct {
revision: u64,
_create_popup: extern fn (*const HIIPopupProtocol, HIIPopupStyle, HIIPopupType, hii.HIIHandle, u16, ?*HIIPopupSelection) usize,
+ /// Displays a popup window.
pub fn createPopup(self: *const HIIPopupProtocol, style: HIIPopupStyle, popup_type: HIIPopupType, handle: hii.HIIHandle, msg: u16, user_selection: ?*HIIPopupSelection) usize {
return self._create_popup(self, style, popup_type, handle, msg, user_selection);
}
diff --git a/lib/std/os/uefi/protocols/rng_protocol.zig b/lib/std/os/uefi/protocols/rng_protocol.zig
@@ -1,15 +1,17 @@
const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 37.5
+/// Random Number Generator protocol
pub const RNGProtocol = extern struct {
_get_info: extern fn (*const RNGProtocol, *usize, [*]align(8) Guid) usize,
_get_rng: extern fn (*const RNGProtocol, ?*align(8) const Guid, usize, [*]u8) usize,
+ /// Returns information about the random number generation implementation.
pub fn getInfo(self: *const RNGProtocol, list_size: *usize, list: [*]align(8) Guid) usize {
return self._get_info(self, list_size, list);
}
+ /// Produces and returns an RNG value using either the default or specified RNG algorithm.
pub fn getRNG(self: *const RNGProtocol, algo: ?*align(8) const Guid, value_length: usize, value: [*]u8) usize {
return self._get_rng(self, algo, value_length, value);
}
diff --git a/lib/std/os/uefi/protocols/simple_pointer_protocol.zig b/lib/std/os/uefi/protocols/simple_pointer_protocol.zig
@@ -2,17 +2,19 @@ const uefi = @import("std").os.uefi;
const Event = uefi.Event;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.5
+/// Protocol for mice
pub const SimplePointerProtocol = struct {
_reset: extern fn (*const SimplePointerProtocol, bool) usize,
_get_state: extern fn (*const SimplePointerProtocol, *SimplePointerState) usize,
wait_for_input: Event,
mode: *SimplePointerMode,
+ /// Resets the pointer device hardware.
pub fn reset(self: *const SimplePointerProtocol, verify: bool) usize {
return self._reset(self, verify);
}
+ /// Retrieves the current state of a pointer device.
pub fn getState(self: *const SimplePointerProtocol, state: *SimplePointerState) usize {
return self._get_state(self, state);
}
diff --git a/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig b/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig
@@ -2,7 +2,7 @@ const uefi = @import("std").os.uefi;
const Event = uefi.Event;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.3
+/// Character input devices, e.g. Keyboard
pub const SimpleTextInputExProtocol = extern struct {
_reset: extern fn (*const SimpleTextInputExProtocol, bool) usize,
_read_key_stroke_ex: extern fn (*const SimpleTextInputExProtocol, *KeyData) usize,
@@ -11,22 +11,27 @@ pub const SimpleTextInputExProtocol = extern struct {
_register_key_notify: extern fn (*const SimpleTextInputExProtocol, *const KeyData, extern fn (*const KeyData) usize, **c_void) usize,
_unregister_key_notify: extern fn (*const SimpleTextInputExProtocol, *const c_void) usize,
+ /// Resets the input device hardware.
pub fn reset(self: *const SimpleTextInputExProtocol, verify: bool) usize {
return self._reset(self, verify);
}
+ /// Reads the next keystroke from the input device.
pub fn readKeyStrokeEx(self: *const SimpleTextInputExProtocol, key_data: *KeyData) usize {
return self._read_key_stroke_ex(self, key_data);
}
+ /// Set certain state for the input device.
pub fn setState(self: *const SimpleTextInputExProtocol, state: *const u8) usize {
return self._set_state(self, state);
}
+ /// Register a notification function for a particular keystroke for the input device.
pub fn registerKeyNotify(self: *const SimpleTextInputExProtocol, key_data: *const KeyData, notify: extern fn (*const KeyData) usize, handle: **c_void) usize {
return self._register_key_notify(self, key_data, notify, handle);
}
+ /// Remove the notification that was previously registered.
pub fn unregisterKeyNotify(self: *const SimpleTextInputExProtocol, handle: *const c_void) usize {
return self._unregister_key_notify(self, handle);
}
diff --git a/lib/std/os/uefi/protocols/simple_text_output_protocol.zig b/lib/std/os/uefi/protocols/simple_text_output_protocol.zig
@@ -1,7 +1,7 @@
const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 12.4
+/// Character output devices
pub const SimpleTextOutputProtocol = extern struct {
_reset: extern fn (*const SimpleTextOutputProtocol, bool) usize,
_output_string: extern fn (*const SimpleTextOutputProtocol, [*]const u16) usize,
@@ -14,38 +14,47 @@ pub const SimpleTextOutputProtocol = extern struct {
_enable_cursor: extern fn (*const SimpleTextOutputProtocol, bool) usize,
mode: *SimpleTextOutputMode,
+ /// Resets the text output device hardware.
pub fn reset(self: *const SimpleTextOutputProtocol, verify: bool) usize {
return self._reset(self, verify);
}
+ /// Writes a string to the output device.
pub fn outputString(self: *const SimpleTextOutputProtocol, msg: [*]const u16) usize {
return self._output_string(self, msg);
}
+ /// Verifies that all characters in a string can be output to the target device.
pub fn testString(self: *const SimpleTextOutputProtocol, msg: [*]const u16) usize {
return self._test_string(self, msg);
}
+ /// Returns information for an available text mode that the output device(s) supports.
pub fn queryMode(self: *const SimpleTextOutputProtocol, mode_number: usize, columns: *usize, rows: *usize) usize {
return self._query_mode(self, mode_number, columns, rows);
}
+ /// Sets the output device(s) to a specified mode.
pub fn setMode(self: *const SimpleTextOutputProtocol, mode_number: usize) usize {
return self._set_mode(self, mode_number);
}
+ /// Sets the background and foreground colors for the outputString() and clearScreen() functions.
pub fn setAttribute(self: *const SimpleTextOutputProtocol, attribute: usize) usize {
return self._set_attribute(self, attribute);
}
+ /// Clears the output device(s) display to the currently selected background color.
pub fn clearScreen(self: *const SimpleTextOutputProtocol) usize {
return self._clear_screen(self);
}
+ /// Sets the current coordinates of the cursor position.
pub fn setCursorPosition(self: *const SimpleTextOutputProtocol, column: usize, row: usize) usize {
return self._set_cursor_position(self, column, row);
}
+ /// Makes the cursor visible or invisible.
pub fn enableCursor(self: *const SimpleTextOutputProtocol, visible: bool) usize {
return self._enable_cursor(self, visible);
}
diff --git a/lib/std/os/uefi/status.zig b/lib/std/os/uefi/status.zig
@@ -1,46 +1,86 @@
const high_bit = 1 << @typeInfo(usize).Int.bits - 1;
-/// UEFI Specification, Version 2.8, Appendix D
+/// The operation completed successfully.
pub const success: usize = 0;
+/// The image failed to load.
pub const load_error: usize = high_bit | 1;
+/// A parameter was incorrect.
pub const invalid_parameter: usize = high_bit | 2;
+/// The operation is not supported.
pub const unsupported: usize = high_bit | 3;
+/// The buffer was not the proper size for the request.
pub const bad_buffer_size: usize = high_bit | 4;
+/// The buffer is not large enough to hold the requested data. The required buffer size is returned in the appropriate parameter when this error occurs.
pub const buffer_too_small: usize = high_bit | 5;
+/// There is no data pending upon return.
pub const not_ready: usize = high_bit | 6;
+/// The physical device reported an error while attempting the operation.
pub const device_error: usize = high_bit | 7;
+/// The device cannot be written to.
pub const write_protected: usize = high_bit | 8;
+/// A resource has run out.
pub const out_of_resources: usize = high_bit | 9;
+/// An inconstancy was detected on the file system causing the operating to fail.
pub const volume_corrupted: usize = high_bit | 10;
+/// There is no more space on the file system.
pub const volume_full: usize = high_bit | 11;
+/// The device does not contain any medium to perform the operation.
pub const no_media: usize = high_bit | 12;
+/// The medium in the device has changed since the last access.
pub const media_changed: usize = high_bit | 13;
+/// The item was not found.
pub const not_found: usize = high_bit | 14;
+/// Access was denied.
pub const access_denied: usize = high_bit | 15;
+/// The server was not found or did not respond to the request.
pub const no_response: usize = high_bit | 16;
+/// A mapping to a device does not exist.
pub const no_mapping: usize = high_bit | 17;
+/// The timeout time expired.
pub const timeout: usize = high_bit | 18;
+/// The protocol has not been started.
pub const not_started: usize = high_bit | 19;
+/// The protocol has already been started.
pub const already_started: usize = high_bit | 20;
+/// The operation was aborted.
pub const aborted: usize = high_bit | 21;
+/// An ICMP error occurred during the network operation.
pub const icmp_error: usize = high_bit | 22;
+/// A TFTP error occurred during the network operation.
pub const tftp_error: usize = high_bit | 23;
+/// A protocol error occurred during the network operation.
pub const protocol_error: usize = high_bit | 24;
+/// The function encountered an internal version that was incompatible with a version requested by the caller.
pub const incompatible_version: usize = high_bit | 25;
+/// The function was not performed due to a security violation.
pub const security_violation: usize = high_bit | 26;
+/// A CRC error was detected.
pub const crc_error: usize = high_bit | 27;
+/// Beginning or end of media was reached
pub const end_of_media: usize = high_bit | 28;
+/// The end of the file was reached.
pub const end_of_file: usize = high_bit | 31;
+/// The language specified was invalid.
pub const invalid_language: usize = high_bit | 32;
+/// The security status of the data is unknown or compromised and the data must be updated or replaced to restore a valid security status.
pub const compromised_data: usize = high_bit | 33;
+/// There is an address conflict address allocation
pub const ip_address_conflict: usize = high_bit | 34;
+/// A HTTP error occurred during the network operation.
pub const http_error: usize = high_bit | 35;
+/// The string contained one or more characters that the device could not render and were skipped.
pub const warn_unknown_glyph: usize = 1;
+/// The handle was closed, but the file was not deleted.
pub const warn_delete_failure: usize = 2;
+/// The handle was closed, but the data to the file was not flushed properly.
pub const warn_write_failure: usize = 3;
+/// The resulting buffer was too small, and the data was truncated to the buffer size.
pub const warn_buffer_too_small: usize = 4;
+/// The data has not been updated within the timeframe set by localpolicy for this type of data.
pub const warn_stale_data: usize = 5;
+/// The resulting buffer contains UEFI-compliant file system.
pub const warn_file_system: usize = 6;
+/// The operation will be processed across a system reset.
pub const warn_reset_required: usize = 7;
diff --git a/lib/std/os/uefi/tables/boot_services.zig b/lib/std/os/uefi/tables/boot_services.zig
@@ -4,29 +4,37 @@ const Guid = uefi.Guid;
const Handle = uefi.Handle;
const TableHeader = uefi.tables.TableHeader;
-/// UEFI Specification, Version 2.8, 4.4
-///
-/// As the boot_services table may grow with new UEFI versions, it is important to check hdr.header_size.
+/// Boot services are services provided by the system's firmware until the operating system takes
+/// over control over the hardware by calling exitBootServices.
///
/// Boot Services must not be used after exitBootServices has been called. The only exception is
/// getMemoryMap, which may be used after the first unsuccessful call to exitBootServices.
/// After successfully calling exitBootServices, system_table.console_in_handle, system_table.con_in,
/// system_table.console_out_handle, system_table.con_out, system_table.standard_error_handle,
/// system_table.std_err, and system_table.boot_services should be set to null. After setting these
-/// attributes to null, system_table.hdr.crc32 must be recomputed. See UEFI Specification, Version 2.8, 7.4.
+/// attributes to null, system_table.hdr.crc32 must be recomputed.
+///
+/// As the boot_services table may grow with new UEFI versions, it is important to check hdr.header_size.
pub const BootServices = extern struct {
hdr: TableHeader,
raiseTpl: usize, // TODO
restoreTpl: usize, // TODO
allocatePages: usize, // TODO
freePages: usize, // TODO
+ /// Returns the current memory map.
getMemoryMap: extern fn (*usize, [*]MemoryDescriptor, *usize, *usize, *u32) usize,
+ /// Allocates pool memory.
allocatePool: extern fn (MemoryType, usize, *align(8) [*]u8) usize,
freePool: usize, // TODO
+ /// Creates an event.
createEvent: extern fn (u32, usize, ?extern fn (Event, ?*const c_void) void, ?*const c_void, *Event) usize,
+ /// Sets the type of timer and the trigger time for a timer event.
setTimer: extern fn (Event, TimerDelay, u64) usize,
+ /// Stops execution until an event is signaled.
waitForEvent: extern fn (usize, [*]const Event, *usize) usize,
+ /// Signals an event.
signalEvent: extern fn (Event) usize,
+ /// Closes an event.
closeEvent: extern fn (Event) usize,
checkEvent: usize, // TODO
installProtocolInterface: usize, // TODO
@@ -40,11 +48,15 @@ pub const BootServices = extern struct {
installConfigurationTable: usize, // TODO
imageLoad: usize, // TODO
imageStart: usize, // TODO
+ /// Terminates a loaded EFI image and returns control to boot services.
exit: extern fn (Handle, usize, usize, ?*const c_void) usize,
imageUnload: usize, // TODO
+ /// Terminates all boot services.
exitBootServices: extern fn (Handle, usize) usize,
getNextMonotonicCount: usize, // TODO
+ /// Induces a fine-grained stall.
stall: extern fn (usize) usize,
+ /// Sets the system's watchdog timer.
setWatchdogTimer: extern fn (usize, u64, usize, ?[*]const u16) usize,
connectController: usize, // TODO
disconnectController: usize, // TODO
@@ -53,6 +65,7 @@ pub const BootServices = extern struct {
openProtocolInformation: usize, // TODO
protocolsPerHandle: usize, // TODO
locateHandleBuffer: usize, // TODO
+ /// Returns the first protocol instance that matches the given protocol.
locateProtocol: extern fn (*align(8) const Guid, ?*const c_void, *?*c_void) usize,
installMultipleProtocolInterfaces: usize, // TODO
uninstallMultipleProtocolInterfaces: usize, // TODO
diff --git a/lib/std/os/uefi/tables/configuration_table.zig b/lib/std/os/uefi/tables/configuration_table.zig
@@ -1,8 +1,6 @@
const uefi = @import("std").os.uefi;
const Guid = uefi.Guid;
-/// UEFI Specification, Version 2.8, 4.6
-/// Because GUIDs must be align(8), structs of this type also must be align(8)
pub const ConfigurationTable = extern struct {
vendor_guid: Guid,
vendor_table: *c_void,
diff --git a/lib/std/os/uefi/tables/runtime_services.zig b/lib/std/os/uefi/tables/runtime_services.zig
@@ -4,26 +4,31 @@ const TableHeader = uefi.tables.TableHeader;
const Time = uefi.Time;
const TimeCapabilities = uefi.TimeCapabilities;
-/// UEFI Specification, Version 2.8, 4.5
+/// Runtime services are provided by the firmware before and after exitBootServices has been called.
///
/// As the runtime_services table may grow with new UEFI versions, it is important to check hdr.header_size.
///
/// Some functions may not be supported. Check the RuntimeServicesSupported variable using getVariable.
-/// getVariable is one of the functions that may not be supported. See UEFI Specification, Version 2.8, 8.1.
+/// getVariable is one of the functions that may not be supported.
///
-/// Some functions may not be called while other functions are running. See UEFI Specification, Version 2.8, 8.1.
+/// Some functions may not be called while other functions are running.
pub const RuntimeServices = extern struct {
hdr: TableHeader,
+ /// Returns the current time and date information, and the time-keeping capabilities of the hardware platform.
getTime: extern fn (*uefi.Time, ?*TimeCapabilities) usize,
setTime: usize, // TODO
getWakeupTime: usize, // TODO
setWakeupTime: usize, // TODO
setVirtualAddressMap: usize, // TODO
convertPointer: usize, // TODO
+ /// Returns the value of a variable.
getVariable: extern fn ([*]const u16, *align(8) const Guid, ?*u32, *usize, ?*c_void) usize,
+ /// Enumerates the current variable names.
getNextVariableName: extern fn (*usize, [*]u16, *align(8) Guid) usize,
+ /// Sets the value of a variable.
setVariable: extern fn ([*]const u16, *align(8) const Guid, u32, usize, *c_void) usize,
getNextHighMonotonicCount: usize, // TODO
+ /// Resets the entire platform.
resetSystem: extern fn (ResetType, usize, usize, ?*const c_void) noreturn,
updateCapsule: usize, // TODO
queryCapsuleCapabilities: usize, // TODO
@@ -32,7 +37,6 @@ pub const RuntimeServices = extern struct {
pub const signature: u64 = 0x56524553544e5552;
};
-/// UEFI Specification, Version 2.8, 8.5.1
pub const ResetType = extern enum(u32) {
ResetCold,
ResetWarm,
@@ -40,7 +44,6 @@ pub const ResetType = extern enum(u32) {
ResetPlatformSpecific,
};
-/// UEFI Specification, Version 2.8, 3.3
pub const global_variable align(8) = Guid{
.time_low = 0x8be4df61,
.time_mid = 0x93ca,
diff --git a/lib/std/os/uefi/tables/system_table.zig b/lib/std/os/uefi/tables/system_table.zig
@@ -7,17 +7,18 @@ const SimpleTextInputExProtocol = uefi.protocols.SimpleTextInputExProtocol;
const SimpleTextOutputProtocol = uefi.protocols.SimpleTextOutputProtocol;
const TableHeader = uefi.tables.TableHeader;
-/// UEFI Specification, Version 2.8, 4.3
+/// The EFI System Table contains pointers to the runtime and boot services tables.
///
/// As the system_table may grow with new UEFI versions, it is important to check hdr.header_size.
///
/// After successfully calling boot_services.exitBootServices, console_in_handle,
/// con_in, console_out_handle, con_out, standard_error_handle, std_err, and
/// boot_services should be set to null. After setting these attributes to null,
-/// hdr.crc32 must be recomputed. See UEFI Specification, Version 2.8, 7.4.
+/// hdr.crc32 must be recomputed.
pub const SystemTable = extern struct {
hdr: TableHeader,
- firmware_vendor: *u16,
+ /// A null-terminated string that identifies the vendor that produces the system firmware of the platform.
+ firmware_vendor: [*]u16,
firmware_revision: u32,
console_in_handle: ?Handle,
con_in: ?*SimpleTextInputExProtocol,
diff --git a/lib/std/os/uefi/tables/table_header.zig b/lib/std/os/uefi/tables/table_header.zig
@@ -1,7 +1,7 @@
-/// UEFI Specification, Version 2.8, 4.2
pub const TableHeader = extern struct {
signature: u64,
revision: u32,
+ /// The size, in bytes, of the entire table including the TableHeader
header_size: u32,
crc32: u32,
reserved: u32,
diff --git a/lib/std/special/compiler_rt.zig b/lib/std/special/compiler_rt.zig
@@ -234,24 +234,29 @@ comptime {
@export("__aeabi_dcmpun", @import("compiler_rt/comparedf2.zig").__unorddf2, linkage);
}
if (builtin.os == .windows) {
- if (!builtin.link_libc) {
+ // Default stack-probe functions emitted by LLVM
+ if (is_mingw) {
+ @export("_alloca", @import("compiler_rt/stack_probe.zig")._chkstk, strong_linkage);
+ @export("___chkstk_ms", @import("compiler_rt/stack_probe.zig").___chkstk_ms, strong_linkage);
+ } else if (!builtin.link_libc) {
+ // This symbols are otherwise exported by MSVCRT.lib
@export("_chkstk", @import("compiler_rt/stack_probe.zig")._chkstk, strong_linkage);
@export("__chkstk", @import("compiler_rt/stack_probe.zig").__chkstk, strong_linkage);
- @export("___chkstk", @import("compiler_rt/stack_probe.zig").___chkstk, strong_linkage);
- @export("__chkstk_ms", @import("compiler_rt/stack_probe.zig").__chkstk_ms, strong_linkage);
- @export("___chkstk_ms", @import("compiler_rt/stack_probe.zig").___chkstk_ms, strong_linkage);
- } else if (is_mingw) {
- @export("___chkstk_ms", @import("compiler_rt/stack_probe.zig").___chkstk_ms, strong_linkage);
+ }
+
+ if (is_mingw) {
@export("__stack_chk_fail", __stack_chk_fail, strong_linkage);
@export("__stack_chk_guard", __stack_chk_guard, strong_linkage);
}
switch (builtin.arch) {
.i386 => {
- @export("_alldiv", @import("compiler_rt/aulldiv.zig")._alldiv, strong_linkage);
- @export("_aulldiv", @import("compiler_rt/aulldiv.zig")._aulldiv, strong_linkage);
- @export("_allrem", @import("compiler_rt/aullrem.zig")._allrem, strong_linkage);
- @export("_aullrem", @import("compiler_rt/aullrem.zig")._aullrem, strong_linkage);
+ // Don't let LLVM apply the stdcall name mangling on those MSVC
+ // builtin functions
+ @export("\x01__alldiv", @import("compiler_rt/aulldiv.zig")._alldiv, strong_linkage);
+ @export("\x01__aulldiv", @import("compiler_rt/aulldiv.zig")._aulldiv, strong_linkage);
+ @export("\x01__allrem", @import("compiler_rt/aullrem.zig")._allrem, strong_linkage);
+ @export("\x01__aullrem", @import("compiler_rt/aullrem.zig")._aullrem, strong_linkage);
@export("__divti3", @import("compiler_rt/divti3.zig").__divti3, linkage);
@export("__modti3", @import("compiler_rt/modti3.zig").__modti3, linkage);
diff --git a/lib/std/special/docs/main.js b/lib/std/special/docs/main.js
@@ -26,6 +26,7 @@
var domTableFnErrors = document.getElementById("tableFnErrors");
var domFnErrorsAnyError = document.getElementById("fnErrorsAnyError");
var domFnExamples = document.getElementById("fnExamples");
+ var domListFnExamples = document.getElementById("listFnExamples");
var domFnNoExamples = document.getElementById("fnNoExamples");
var domDeclNoRef = document.getElementById("declNoRef");
var domSearch = document.getElementById("search");
@@ -64,6 +65,9 @@
declNames: [],
// these will be all types, except the last one may be a type or a decl
declObjs: [],
+
+ // (a, b, c, d) comptime call; result is the value the docs refer to
+ callName: null,
};
var curNavSearch = "";
var curSearchIndex = -1;
@@ -237,20 +241,29 @@
renderErrorSet(errSetType);
}
- var protoSrcIndex;
+ var fnObj = zigAnalysis.fns[fnDecl.value];
+ var protoSrcIndex = fnObj.src;
if (typeIsGenericFn(fnDecl.type)) {
- protoSrcIndex = fnDecl.value;
-
var instantiations = nodesToFnsMap[protoSrcIndex];
var calls = nodesToCallsMap[protoSrcIndex];
if (instantiations == null && calls == null) {
domFnNoExamples.classList.remove("hidden");
- } else {
- // TODO show examples
+ } else if (calls != null) {
+ if (fnObj.combined === undefined) fnObj.combined = allCompTimeFnCallsResult(calls);
+ if (fnObj.combined != null) renderContainer(fnObj.combined);
+
+ resizeDomList(domListFnExamples, calls.length, '<li></li>');
+
+ for (var callI = 0; callI < calls.length; callI += 1) {
+ var liDom = domListFnExamples.children[callI];
+ liDom.innerHTML = getCallHtml(fnDecl, calls[callI]);
+ }
+
domFnExamples.classList.remove("hidden");
+ } else if (instantiations != null) {
+ // TODO
}
} else {
- protoSrcIndex = zigAnalysis.fns[fnDecl.value].src;
domFnExamples.classList.add("hidden");
domFnNoExamples.classList.add("hidden");
@@ -305,7 +318,7 @@
function renderInfo() {
domTdZigVer.textContent = zigAnalysis.params.zigVersion;
- domTdTarget.textContent = zigAnalysis.params.target;
+ domTdTarget.textContent = zigAnalysis.params.builds[0].target;
domSectInfo.classList.remove("hidden");
}
@@ -349,13 +362,15 @@
}
}
- function navLink(pkgNames, declNames) {
+ function navLink(pkgNames, declNames, callName) {
if (pkgNames.length === 0 && declNames.length === 0) {
return '#';
- } else if (declNames.length === 0) {
+ } else if (declNames.length === 0 && callName == null) {
return '#' + pkgNames.join('.');
- } else {
+ } else if (callName == null) {
return '#' + pkgNames.join('.') + ';' + declNames.join('.');
+ } else {
+ return '#' + pkgNames.join('.') + ';' + declNames.join('.') + ';' + callName;
}
}
@@ -367,6 +382,22 @@
return navLink(curNav.pkgNames, curNav.declNames.concat([childName]));
}
+ function navLinkCall(callObj) {
+ var declNamesCopy = curNav.declNames.concat([]);
+ var callName = declNamesCopy.pop();
+
+ callName += '(';
+ for (var arg_i = 0; arg_i < callObj.args.length; arg_i += 1) {
+ if (arg_i !== 0) callName += ',';
+ var argObj = callObj.args[arg_i];
+ callName += getValueText(argObj.type, argObj.value, false, false);
+ }
+ callName += ')';
+
+ declNamesCopy.push(callName);
+ return navLink(curNav.pkgNames, declNamesCopy);
+ }
+
function resizeDomListDl(dlDom, desiredLen) {
// add the missing dom entries
var i, ev;
@@ -426,6 +457,40 @@
return (typeObj.len == null) ? pointerSizeEnum.One : typeObj.len;
}
+ function getCallHtml(fnDecl, callIndex) {
+ var callObj = zigAnalysis.calls[callIndex];
+
+ // TODO make these links work
+ //var html = '<a href="' + navLinkCall(callObj) + '">' + escapeHtml(fnDecl.name) + '</a>(';
+ var html = escapeHtml(fnDecl.name) + '(';
+ for (var arg_i = 0; arg_i < callObj.args.length; arg_i += 1) {
+ if (arg_i !== 0) html += ', ';
+ var argObj = callObj.args[arg_i];
+ html += getValueText(argObj.type, argObj.value, true, true);
+ }
+ html += ')';
+ return html;
+ }
+
+ function getValueText(typeIndex, value, wantHtml, wantLink) {
+ var typeObj = zigAnalysis.types[typeIndex];
+ switch (typeObj.kind) {
+ case typeKinds.Type:
+ return typeIndexName(value, wantHtml, wantLink);
+ case typeKinds.Fn:
+ var fnObj = zigAnalysis.fns[value];
+ return typeIndexName(fnObj.type, wantHtml, wantLink);
+ case typeKinds.Int:
+ if (wantHtml) {
+ return '<span class="tok-number">' + value + '</span>';
+ } else {
+ return value + "";
+ }
+ default:
+ throw new Error("TODO implement getValueText for this type");
+ }
+ }
+
function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) {
switch (typeObj.kind) {
case typeKinds.Array:
@@ -544,6 +609,12 @@
} else {
return "void";
}
+ case typeKinds.EnumLiteral:
+ if (wantHtml) {
+ return '<span class="tok-type">(enum literal)</span>';
+ } else {
+ return "(enum literal)";
+ }
case typeKinds.NoReturn:
if (wantHtml) {
return '<span class="tok-type">noreturn</span>';
@@ -592,6 +663,15 @@
}
payloadHtml += '(';
if (typeObj.args != null) {
+ var fields = null;
+ var isVarArgs = false;
+ if (fnDecl != null) {
+ var fnObj = zigAnalysis.fns[fnDecl.value];
+ var fnNode = zigAnalysis.astNodes[fnObj.src];
+ fields = fnNode.fields;
+ isVarArgs = fnNode.varArgs;
+ }
+
for (var i = 0; i < typeObj.args.length; i += 1) {
if (i != 0) {
payloadHtml += ', ';
@@ -599,10 +679,31 @@
var argTypeIndex = typeObj.args[i];
- if (fnDecl != null && zigAnalysis.astNodes[fnDecl.src].fields != null) {
- var paramDeclIndex = zigAnalysis.astNodes[fnDecl.src].fields[i];
- var paramName = zigAnalysis.astNodes[paramDeclIndex].name;
+ if (fields != null) {
+ var paramNode = zigAnalysis.astNodes[fields[i]];
+
+ if (paramNode.varArgs) {
+ payloadHtml += '...';
+ continue;
+ }
+
+ if (paramNode.noalias) {
+ if (wantHtml) {
+ payloadHtml += '<span class="tok-kw">noalias</span> ';
+ } else {
+ payloadHtml += 'noalias ';
+ }
+ }
+ if (paramNode.comptime) {
+ if (wantHtml) {
+ payloadHtml += '<span class="tok-kw">comptime</span> ';
+ } else {
+ payloadHtml += 'comptime ';
+ }
+ }
+
+ var paramName = paramNode.name;
if (paramName != null) {
// skip if it matches the type name
if (argTypeIndex == null || !shouldSkipParamName(argTypeIndex, paramName)) {
@@ -611,7 +712,9 @@
}
}
- if (argTypeIndex != null) {
+ if (isVarArgs && i === typeObj.args.length - 1) {
+ payloadHtml += '...';
+ } else if (argTypeIndex != null) {
payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink);
} else if (wantHtml) {
payloadHtml += '<span class="tok-kw">var</span>';
@@ -690,7 +793,7 @@
}
function allCompTimeFnCallsHaveTypeResult(typeIndex, value) {
- var srcIndex = typeIsGenericFn(typeIndex) ? value : zigAnalysis.fns[value].src;
+ var srcIndex = zigAnalysis.fns[value].src;
var calls = nodesToCallsMap[srcIndex];
if (calls == null) return false;
for (var i = 0; i < calls.length; i += 1) {
@@ -700,6 +803,90 @@
return true;
}
+ function allCompTimeFnCallsResult(calls) {
+ var firstTypeObj = null;
+ var containerObj = {
+ privDecls: [],
+ };
+ for (var callI = 0; callI < calls.length; callI += 1) {
+ var call = zigAnalysis.calls[calls[callI]];
+ if (call.result.type !== typeTypeId) return null;
+ var typeObj = zigAnalysis.types[call.result.value];
+ if (!typeKindIsContainer(typeObj.kind)) return null;
+ if (firstTypeObj == null) {
+ firstTypeObj = typeObj;
+ containerObj.src = typeObj.src;
+ } else if (firstTypeObj.src !== typeObj.src) {
+ return null;
+ }
+
+ if (containerObj.fields == null) {
+ containerObj.fields = (typeObj.fields || []).concat([]);
+ } else for (var fieldI = 0; fieldI < typeObj.fields.length; fieldI += 1) {
+ var prev = containerObj.fields[fieldI];
+ var next = typeObj.fields[fieldI];
+ if (prev === next) continue;
+ if (typeof(prev) === 'object') {
+ if (prev[next] == null) prev[next] = typeObj;
+ } else {
+ containerObj.fields[fieldI] = {};
+ containerObj.fields[fieldI][prev] = firstTypeObj;
+ containerObj.fields[fieldI][next] = typeObj;
+ }
+ }
+
+ if (containerObj.pubDecls == null) {
+ containerObj.pubDecls = (typeObj.pubDecls || []).concat([]);
+ } else for (var declI = 0; declI < typeObj.pubDecls.length; declI += 1) {
+ var prev = containerObj.pubDecls[declI];
+ var next = typeObj.pubDecls[declI];
+ if (prev === next) continue;
+ // TODO instead of showing "examples" as the public declarations,
+ // do logic like this:
+ //if (typeof(prev) !== 'object') {
+ // var newDeclId = zigAnalysis.decls.length;
+ // prev = clone(zigAnalysis.decls[prev]);
+ // prev.id = newDeclId;
+ // zigAnalysis.decls.push(prev);
+ // containerObj.pubDecls[declI] = prev;
+ //}
+ //mergeDecls(prev, next, firstTypeObj, typeObj);
+ }
+ }
+ for (var declI = 0; declI < containerObj.pubDecls.length; declI += 1) {
+ var decl = containerObj.pubDecls[declI];
+ if (typeof(decl) === 'object') {
+ containerObj.pubDecls[declI] = containerObj.pubDecls[declI].id;
+ }
+ }
+ return containerObj;
+ }
+
+ function mergeDecls(declObj, nextDeclIndex, firstTypeObj, typeObj) {
+ var nextDeclObj = zigAnalysis.decls[nextDeclIndex];
+ if (declObj.type != null && nextDeclObj.type != null && declObj.type !== nextDeclObj.type) {
+ if (typeof(declObj.type) !== 'object') {
+ var prevType = declObj.type;
+ declObj.type = {};
+ declObj.type[prevType] = firstTypeObj;
+ declObj.value = null;
+ }
+ declObj.type[nextDeclObj.type] = typeObj;
+ } else if (declObj.type == null && nextDeclObj != null) {
+ declObj.type = nextDeclObj.type;
+ }
+ if (declObj.value != null && nextDeclObj.value != null && declObj.value !== nextDeclObj.value) {
+ if (typeof(declObj.value) !== 'object') {
+ var prevValue = declObj.value;
+ declObj.value = {};
+ declObj.value[prevValue] = firstTypeObj;
+ }
+ declObj.value[nextDeclObj.value] = typeObj;
+ } else if (declObj.value == null && nextDeclObj.value != null) {
+ declObj.value = nextDeclObj.value;
+ }
+ }
+
function renderValue(decl) {
domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
escapeHtml(decl.name) + ': ' + typeIndexName(decl.type, true, true);
@@ -733,13 +920,15 @@
var fnsList = [];
var varsList = [];
var valsList = [];
+
for (var i = 0; i < container.pubDecls.length; i += 1) {
var decl = zigAnalysis.decls[container.pubDecls[i]];
+
if (decl.kind === 'var') {
varsList.push(decl);
continue;
} else if (decl.kind === 'const' && decl.type != null) {
- if (decl.type == typeTypeId) {
+ if (decl.type === typeTypeId) {
if (typeIsErrSet(decl.value)) {
errSetsList.push(decl);
} else if (typeIsStructWithNoFields(decl.value)) {
@@ -838,7 +1027,12 @@
if (container.kind === typeKinds.Enum) {
html += ' = <span class="tok-number">' + field + '</span>';
} else {
- html += ": " + typeIndexName(field, true, true);
+ html += ": ";
+ if (typeof(field) === 'object') {
+ html += '<span class="tok-kw">var</span>';
+ } else {
+ html += typeIndexName(field, true, true);
+ }
}
html += ',</pre>';
@@ -1042,13 +1236,16 @@
return list;
}
- function declCanRepresentTypeKind(typeKind) {
- return typeKind === typeKinds.ErrorSet ||
- typeKind === typeKinds.Struct ||
+ function typeKindIsContainer(typeKind) {
+ return typeKind === typeKinds.Struct ||
typeKind === typeKinds.Union ||
typeKind === typeKinds.Enum;
}
+ function declCanRepresentTypeKind(typeKind) {
+ return typeKind === typeKinds.ErrorSet || typeKindIsContainer(typeKind);
+ }
+
function computeCanonDeclPaths() {
var list = new Array(zigAnalysis.decls.length);
canonTypeDecls = new Array(zigAnalysis.types.length);
@@ -1141,10 +1338,8 @@
}
function onSearchKeyDown(ev) {
- switch (ev.which) {
- case 13:
- if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
-
+ switch (getKeyString(ev)) {
+ case "Enter":
// detect if this search changes anything
var terms1 = getSearchTerms();
startSearch();
@@ -1157,9 +1352,7 @@
ev.preventDefault();
ev.stopPropagation();
return;
- case 27:
- if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
-
+ case "Esc":
domSearch.value = "";
domSearch.blur();
curSearchIndex = -1;
@@ -1167,16 +1360,12 @@
ev.stopPropagation();
startSearch();
return;
- case 38:
- if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
-
+ case "Up":
moveSearchCursor(-1);
ev.preventDefault();
ev.stopPropagation();
return;
- case 40:
- if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
-
+ case "Down":
moveSearchCursor(1);
ev.preventDefault();
ev.stopPropagation();
@@ -1210,26 +1399,49 @@
renderSearchCursor();
}
- function onWindowKeyDown(ev) {
+ function getKeyString(ev) {
+ var name;
+ var ignoreShift = false;
switch (ev.which) {
+ case 13:
+ name = "Enter";
+ break;
case 27:
- if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
+ name = "Esc";
+ break;
+ case 38:
+ name = "Up";
+ break;
+ case 40:
+ name = "Down";
+ break;
+ default:
+ ignoreShift = true;
+ name = (ev.key != null) ? ev.key : String.fromCharCode(ev.charCode || ev.keyCode);
+ }
+ if (!ignoreShift && ev.shiftKey) name = "Shift+" + name;
+ if (ev.altKey) name = "Alt+" + name;
+ if (ev.ctrlKey) name = "Ctrl+" + name;
+ return name;
+ }
+
+ function onWindowKeyDown(ev) {
+ switch (getKeyString(ev)) {
+ case "Esc":
if (!domHelpModal.classList.contains("hidden")) {
domHelpModal.classList.add("hidden");
ev.preventDefault();
ev.stopPropagation();
}
break;
- case 83:
- if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
+ case "s":
domSearch.focus();
domSearch.select();
ev.preventDefault();
ev.stopPropagation();
startAsyncSearch();
break;
- case 191:
- if (!ev.shiftKey || ev.ctrlKey || ev.altKey) return;
+ case "?":
ev.preventDefault();
ev.stopPropagation();
showHelpModal();
@@ -1391,4 +1603,18 @@
function byNameProperty(a, b) {
return operatorCompare(a.name, b.name);
}
+
+ function clone(obj) {
+ var res = {};
+ for (var key in obj) {
+ res[key] = obj[key];
+ }
+ return res;
+ }
+
+ function firstObjectKey(obj) {
+ for (var key in obj) {
+ return key;
+ }
+ }
})();
diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig
@@ -173,6 +173,12 @@ test "zig fmt: aligned struct field" {
\\};
\\
);
+ try testCanonical(
+ \\pub const S = struct {
+ \\ f: i32 align(32) = 1,
+ \\};
+ \\
+ );
}
test "zig fmt: preserve space between async fn definitions" {
diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig
@@ -272,7 +272,7 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align
try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // (
try renderExpression(allocator, stream, tree, indent, start_col, align_value_expr, Space.None); // alignment
- try renderToken(tree, stream, rparen_token, indent, start_col, Space.Comma); // )
+ try renderToken(tree, stream, rparen_token, indent, start_col, Space.Comma); // ),
} else {
try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Comma); // type,
}
@@ -283,8 +283,20 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
} else {
try renderToken(tree, stream, field.name_token, indent, start_col, Space.None); // name
try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // :
- try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type
- try renderToken(tree, stream, tree.nextToken(field.type_expr.?.lastToken()), indent, start_col, Space.Space); // =
+
+ if (field.align_expr) |align_value_expr| {
+ try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type
+ const lparen_token = tree.prevToken(align_value_expr.firstToken());
+ const align_kw = tree.prevToken(lparen_token);
+ const rparen_token = tree.nextToken(align_value_expr.lastToken());
+ try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align
+ try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // (
+ try renderExpression(allocator, stream, tree, indent, start_col, align_value_expr, Space.None); // alignment
+ try renderToken(tree, stream, rparen_token, indent, start_col, Space.Space); // )
+ } else {
+ try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type
+ }
+ try renderToken(tree, stream, tree.prevToken(field.value_expr.?.firstToken()), indent, start_col, Space.Space); // =
return renderExpression(allocator, stream, tree, indent, start_col, field.value_expr.?, Space.Comma); // value,
}
},
diff --git a/src/all_types.hpp b/src/all_types.hpp
@@ -2091,6 +2091,7 @@ struct CodeGen {
bool function_sections;
bool enable_dump_analysis;
bool enable_doc_generation;
+ bool disable_bin_generation;
Buf *mmacosx_version_min;
Buf *mios_version_min;
diff --git a/src/analyze.cpp b/src/analyze.cpp
@@ -1787,6 +1787,7 @@ static ZigType *analyze_fn_type(CodeGen *g, AstNode *proto_node, Scope *child_sc
if (!analyze_const_align(g, child_scope, fn_proto->align_expr, &fn_type_id.alignment)) {
return g->builtin_types.entry_invalid;
}
+ fn_entry->align_bytes = fn_type_id.alignment;
}
if (fn_proto->return_var_token != nullptr) {
@@ -3327,7 +3328,9 @@ static void resolve_decl_fn(CodeGen *g, TldFn *tld_fn) {
fn_table_entry->type_entry = analyze_fn_type(g, source_node, child_scope, fn_table_entry);
if (fn_proto->section_expr != nullptr) {
- analyze_const_string(g, child_scope, fn_proto->section_expr, &fn_table_entry->section_name);
+ if (!analyze_const_string(g, child_scope, fn_proto->section_expr, &fn_table_entry->section_name)) {
+ fn_table_entry->type_entry = g->builtin_types.entry_invalid;
+ }
}
if (fn_table_entry->type_entry->id == ZigTypeIdInvalid) {
@@ -8599,6 +8602,9 @@ static void resolve_llvm_types_fn_type(CodeGen *g, ZigType *fn_type) {
fn_type->llvm_di_type = ZigLLVMCreateDebugPointerType(g->dbuilder, fn_type->data.fn.raw_di_type,
LLVMStoreSizeOfType(g->target_data_ref, fn_type->llvm_type),
LLVMABIAlignmentOfType(g->target_data_ref, fn_type->llvm_type), "");
+
+ gen_param_types.deinit();
+ param_di_types.deinit();
}
void resolve_llvm_types_fn(CodeGen *g, ZigFn *fn) {
@@ -8633,6 +8639,9 @@ void resolve_llvm_types_fn(CodeGen *g, ZigFn *fn) {
fn->raw_type_ref = LLVMFunctionType(get_llvm_type(g, gen_return_type),
gen_param_types.items, gen_param_types.length, false);
fn->raw_di_type = ZigLLVMCreateSubroutineType(g->dbuilder, param_di_types.items, (int)param_di_types.length, 0);
+
+ param_di_types.deinit();
+ gen_param_types.deinit();
}
static void resolve_llvm_types_anyerror(CodeGen *g) {
@@ -8657,6 +8666,8 @@ static void resolve_llvm_types_anyerror(CodeGen *g) {
tag_debug_align_in_bits,
err_enumerators.items, err_enumerators.length,
get_llvm_di_type(g, g->err_tag_type), "");
+
+ err_enumerators.deinit();
}
static void resolve_llvm_types_async_frame(CodeGen *g, ZigType *frame_type, ResolveStatus wanted_resolve_status) {
@@ -8802,6 +8813,9 @@ static void resolve_llvm_types_any_frame(CodeGen *g, ZigType *any_frame_type, Re
nullptr, di_element_types.items, di_element_types.length, 0, nullptr, "");
ZigLLVMReplaceTemporary(g->dbuilder, frame_header_di_type, replacement_di_type);
+
+ field_types.deinit();
+ di_element_types.deinit();
}
static void resolve_llvm_types(CodeGen *g, ZigType *type, ResolveStatus wanted_resolve_status) {
diff --git a/src/codegen.cpp b/src/codegen.cpp
@@ -413,18 +413,9 @@ static LLVMValueRef make_fn_llvm_value(CodeGen *g, ZigFn *fn) {
linkage = fn_export->linkage;
}
- bool external_linkage = linkage != GlobalLinkageIdInternal;
CallingConvention cc = fn->type_entry->data.fn.fn_type_id.cc;
- if (cc == CallingConventionStdcall && external_linkage &&
- g->zig_target->arch == ZigLLVM_x86)
- {
- // prevent llvm name mangling
- symbol_name = buf_ptr(buf_sprintf("\x01_%s", symbol_name));
- }
-
bool is_async = fn_is_async(fn);
-
ZigType *fn_type = fn->type_entry;
// Make the raw_type_ref populated
resolve_llvm_types_fn(g, fn);
@@ -4254,8 +4245,19 @@ static LLVMValueRef ir_render_struct_field_ptr(CodeGen *g, IrExecutable *executa
if ((err = type_resolve(g, struct_type, ResolveStatusLLVMFull)))
codegen_report_errors_and_exit(g);
- assert(field->gen_index != SIZE_MAX);
- return LLVMBuildStructGEP(g->builder, struct_ptr, (unsigned)field->gen_index, "");
+ src_assert(field->gen_index != SIZE_MAX, instruction->base.source_node);
+ LLVMValueRef field_ptr_val = LLVMBuildStructGEP(g->builder, struct_ptr, (unsigned)field->gen_index, "");
+ ZigType *res_type = instruction->base.value.type;
+ src_assert(res_type->id == ZigTypeIdPointer, instruction->base.source_node);
+ if (res_type->data.pointer.host_int_bytes != 0) {
+ // We generate packed structs with get_llvm_type_of_n_bytes, which is
+ // u8 for 1 byte or [n]u8 for multiple bytes. But the pointer to the type
+ // is supposed to be a pointer to the integer. So we bitcast it here.
+ LLVMTypeRef int_elem_type = LLVMIntType(8*res_type->data.pointer.host_int_bytes);
+ LLVMTypeRef integer_ptr_type = LLVMPointerType(int_elem_type, 0);
+ return LLVMBuildBitCast(g->builder, field_ptr_val, integer_ptr_type, "");
+ }
+ return field_ptr_val;
}
static LLVMValueRef ir_render_union_field_ptr(CodeGen *g, IrExecutable *executable,
@@ -7595,6 +7597,8 @@ static void zig_llvm_emit_output(CodeGen *g) {
char *err_msg = nullptr;
switch (g->emit_file_type) {
case EmitFileTypeBinary:
+ if (g->disable_bin_generation)
+ return;
if (ZigLLVMTargetMachineEmitToFile(g->target_machine, g->module, buf_ptr(output_path),
ZigLLVM_EmitBinary, &err_msg, g->build_mode == BuildModeDebug, is_small,
g->enable_time_report))
@@ -10167,6 +10171,7 @@ static Error check_cache(CodeGen *g, Buf *manifest_dir, Buf *digest) {
cache_bool(ch, g->function_sections);
cache_bool(ch, g->enable_dump_analysis);
cache_bool(ch, g->enable_doc_generation);
+ cache_bool(ch, g->disable_bin_generation);
cache_buf_opt(ch, g->mmacosx_version_min);
cache_buf_opt(ch, g->mios_version_min);
cache_usize(ch, g->version_major);
@@ -10405,7 +10410,8 @@ void codegen_build_and_link(CodeGen *g) {
// If there is more than one object, we have to link them (with -r).
// Finally, if we didn't make an object from zig source, and we don't have caching enabled,
// then we have an object from C source that we must copy to the output dir which we do with a -r link.
- if (g->emit_file_type == EmitFileTypeBinary && (g->out_type != OutTypeObj || g->link_objects.length > 1 ||
+ if (!g->disable_bin_generation && g->emit_file_type == EmitFileTypeBinary &&
+ (g->out_type != OutTypeObj || g->link_objects.length > 1 ||
(!need_llvm_module(g) && !g->enable_cache)))
{
codegen_link(g);
diff --git a/src/dump_analysis.cpp b/src/dump_analysis.cpp
@@ -456,6 +456,10 @@ static uint32_t anal_dump_get_fn_id(AnalDumpCtx *ctx, ZigFn *fn) {
auto existing_entry = ctx->fn_map.put_unique(fn, fn_id);
if (existing_entry == nullptr) {
ctx->fn_list.append(fn);
+
+ // poke the fn
+ (void)anal_dump_get_type_id(ctx, fn->type_entry);
+ (void)anal_dump_get_node_id(ctx, fn->proto_node);
} else {
fn_id = existing_entry->value;
}
@@ -700,11 +704,7 @@ static void anal_dump_value(AnalDumpCtx *ctx, AstNode *source_node, ZigType *ty,
case ZigTypeIdFn: {
if (value->data.x_ptr.special == ConstPtrSpecialFunction) {
ZigFn *val_fn = value->data.x_ptr.data.fn.fn_entry;
- if (val_fn->type_entry->data.fn.is_generic) {
- anal_dump_node_ref(ctx, val_fn->proto_node);
- } else {
- anal_dump_fn_ref(ctx, val_fn);
- }
+ anal_dump_fn_ref(ctx, val_fn);
} else {
jw_null(&ctx->jw);
}
@@ -758,6 +758,7 @@ static void anal_dump_type(AnalDumpCtx *ctx, ZigType *ty) {
switch (ty->id) {
case ZigTypeIdMetaType:
case ZigTypeIdBool:
+ case ZigTypeIdEnumLiteral:
break;
case ZigTypeIdStruct: {
if (ty->data.structure.is_slice) {
@@ -1072,13 +1073,25 @@ static void anal_dump_node(AnalDumpCtx *ctx, const AstNode *node) {
jw_object_field(jw, "col");
jw_int(jw, node->column);
- const Buf *doc_comments_buf;
+ const Buf *doc_comments_buf = nullptr;
+ const Buf *name_buf = nullptr;
+ const ZigList<AstNode *> *field_nodes = nullptr;
+ bool is_var_args = false;
+ bool is_noalias = false;
+ bool is_comptime = false;
+
switch (node->type) {
case NodeTypeParamDecl:
doc_comments_buf = &node->data.param_decl.doc_comments;
+ name_buf = node->data.param_decl.name;
+ is_var_args = node->data.param_decl.is_var_args;
+ is_noalias = node->data.param_decl.is_noalias;
+ is_comptime = node->data.param_decl.is_comptime;
break;
case NodeTypeFnProto:
doc_comments_buf = &node->data.fn_proto.doc_comments;
+ field_nodes = &node->data.fn_proto.params;
+ is_var_args = node->data.fn_proto.is_var_args;
break;
case NodeTypeVariableDeclaration:
doc_comments_buf = &node->data.variable_declaration.doc_comments;
@@ -1088,55 +1101,50 @@ static void anal_dump_node(AnalDumpCtx *ctx, const AstNode *node) {
break;
case NodeTypeStructField:
doc_comments_buf = &node->data.struct_field.doc_comments;
+ name_buf = node->data.struct_field.name;
+ break;
+ case NodeTypeContainerDecl:
+ field_nodes = &node->data.container_decl.fields;
break;
default:
- doc_comments_buf = nullptr;
break;
}
+
if (doc_comments_buf != nullptr && doc_comments_buf->list.length != 0) {
jw_object_field(jw, "docs");
jw_string(jw, buf_ptr(doc_comments_buf));
}
- const Buf *name_buf;
- switch (node->type) {
- case NodeTypeStructField:
- name_buf = node->data.struct_field.name;
- break;
- case NodeTypeParamDecl:
- name_buf = node->data.param_decl.name;
- break;
- default:
- name_buf = nullptr;
- break;
- }
if (name_buf != nullptr) {
jw_object_field(jw, "name");
jw_string(jw, buf_ptr(name_buf));
}
- const ZigList<AstNode *> *fieldNodes;
- switch (node->type) {
- case NodeTypeContainerDecl:
- fieldNodes = &node->data.container_decl.fields;
- break;
- case NodeTypeFnProto:
- fieldNodes = &node->data.fn_proto.params;
- break;
- default:
- fieldNodes = nullptr;
- break;
- }
- if (fieldNodes != nullptr) {
+ if (field_nodes != nullptr) {
jw_object_field(jw, "fields");
jw_begin_array(jw);
- for (size_t i = 0; i < fieldNodes->length; i += 1) {
+ for (size_t i = 0; i < field_nodes->length; i += 1) {
jw_array_elem(jw);
- anal_dump_node_ref(ctx, fieldNodes->at(i));
+ anal_dump_node_ref(ctx, field_nodes->at(i));
}
jw_end_array(jw);
}
+ if (is_var_args) {
+ jw_object_field(jw, "varArgs");
+ jw_bool(jw, true);
+ }
+
+ if (is_comptime) {
+ jw_object_field(jw, "comptime");
+ jw_bool(jw, true);
+ }
+
+ if (is_noalias) {
+ jw_object_field(jw, "noalias");
+ jw_bool(jw, true);
+ }
+
jw_end_object(jw);
}
@@ -1207,10 +1215,16 @@ void zig_print_analysis_dump(CodeGen *g, FILE *f, const char *one_indent, const
jw_object_field(jw, "zigVersion");
jw_string(jw, ZIG_VERSION_STRING);
+ jw_object_field(jw, "builds");
+ jw_begin_array(jw);
+ jw_array_elem(jw);
+ jw_begin_object(jw);
jw_object_field(jw, "target");
Buf triple_buf = BUF_INIT;
target_triple_zig(&triple_buf, g->zig_target);
jw_string(jw, buf_ptr(&triple_buf));
+ jw_end_object(jw);
+ jw_end_array(jw);
jw_object_field(jw, "rootName");
jw_string(jw, buf_ptr(g->root_out_name));
@@ -1229,59 +1243,76 @@ void zig_print_analysis_dump(CodeGen *g, FILE *f, const char *one_indent, const
jw_object_field(jw, "calls");
jw_begin_array(jw);
{
+ ZigList<ZigVar *> var_stack = {};
+
auto it = g->memoized_fn_eval_table.entry_iterator();
for (;;) {
auto *entry = it.next();
if (!entry)
break;
- jw_array_elem(jw);
- jw_begin_object(jw);
-
- jw_object_field(jw, "args");
- jw_begin_object(jw);
+ var_stack.resize(0);
+ ZigFn *fn = nullptr;
Scope *scope = entry->key;
while (scope != nullptr) {
if (scope->id == ScopeIdVarDecl) {
ZigVar *var = reinterpret_cast<ScopeVarDecl *>(scope)->var;
- jw_object_field(jw, var->name);
- jw_begin_object(jw);
- jw_object_field(jw, "type");
- anal_dump_type_ref(&ctx, var->var_type);
- jw_object_field(jw, "value");
- anal_dump_value(&ctx, scope->source_node, var->var_type, var->const_value);
- jw_end_object(jw);
+ var_stack.append(var);
} else if (scope->id == ScopeIdFnDef) {
- jw_end_object(jw);
+ fn = reinterpret_cast<ScopeFnDef *>(scope)->fn_entry;
+ break;
+ }
+ scope = scope->parent;
+ }
+ ConstExprValue *result = entry->value;
+
+ assert(fn != nullptr);
+
+ jw_array_elem(jw);
+ jw_begin_object(jw);
- jw_object_field(jw, "fn");
- ZigFn *fn = reinterpret_cast<ScopeFnDef *>(scope)->fn_entry;
- anal_dump_fn_ref(&ctx, fn);
+ jw_object_field(jw, "fn");
+ anal_dump_fn_ref(&ctx, fn);
- ConstExprValue *result = entry->value;
- jw_object_field(jw, "result");
+ jw_object_field(jw, "result");
+ {
+ jw_begin_object(jw);
+
+ jw_object_field(jw, "type");
+ anal_dump_type_ref(&ctx, result->type);
+
+ jw_object_field(jw, "value");
+ anal_dump_value(&ctx, scope->source_node, result->type, result);
+
+ jw_end_object(jw);
+ }
+
+ if (var_stack.length != 0) {
+ jw_object_field(jw, "args");
+ jw_begin_array(jw);
+
+ while (var_stack.length != 0) {
+ ZigVar *var = var_stack.pop();
+
+ jw_array_elem(jw);
jw_begin_object(jw);
+
jw_object_field(jw, "type");
- anal_dump_type_ref(&ctx, result->type);
+ anal_dump_type_ref(&ctx, var->var_type);
+
jw_object_field(jw, "value");
- anal_dump_value(&ctx, scope->source_node, result->type, result);
+ anal_dump_value(&ctx, scope->source_node, var->var_type, var->const_value);
+
jw_end_object(jw);
- break;
}
- scope = scope->parent;
+ jw_end_array(jw);
}
+
jw_end_object(jw);
}
- }
- jw_end_array(jw);
- jw_object_field(jw, "fns");
- jw_begin_array(jw);
- for (uint32_t i = 0; i < ctx.fn_list.length; i += 1) {
- ZigFn *fn = ctx.fn_list.at(i);
- jw_array_elem(jw);
- anal_dump_fn(&ctx, fn);
+ var_stack.deinit();
}
jw_end_array(jw);
@@ -1309,12 +1340,12 @@ void zig_print_analysis_dump(CodeGen *g, FILE *f, const char *one_indent, const
}
jw_end_array(jw);
- jw_object_field(jw, "files");
+ jw_object_field(jw, "fns");
jw_begin_array(jw);
- for (uint32_t i = 0; i < ctx.file_list.length; i += 1) {
- Buf *file = ctx.file_list.at(i);
+ for (uint32_t i = 0; i < ctx.fn_list.length; i += 1) {
+ ZigFn *fn = ctx.fn_list.at(i);
jw_array_elem(jw);
- anal_dump_file(&ctx, file);
+ anal_dump_fn(&ctx, fn);
}
jw_end_array(jw);
@@ -1336,5 +1367,14 @@ void zig_print_analysis_dump(CodeGen *g, FILE *f, const char *one_indent, const
}
jw_end_array(jw);
+ jw_object_field(jw, "files");
+ jw_begin_array(jw);
+ for (uint32_t i = 0; i < ctx.file_list.length; i += 1) {
+ Buf *file = ctx.file_list.at(i);
+ jw_array_elem(jw);
+ anal_dump_file(&ctx, file);
+ }
+ jw_end_array(jw);
+
jw_end_object(jw);
}
diff --git a/src/link.cpp b/src/link.cpp
@@ -552,28 +552,41 @@ static const char *mingwex_arm64_src[] = {
struct MinGWDef {
const char *name;
- const char *path;
bool always_link;
};
static const MinGWDef mingw_def_list[] = {
- {"msvcrt", "lib-common" OS_SEP "msvcrt.def.in", true},
- {"setupapi", "libarm32" OS_SEP "setupapi.def", false},
- {"setupapi", "libarm64" OS_SEP "setupapi.def", false},
- {"setupapi", "lib32" OS_SEP "setupapi.def", false},
- {"setupapi", "lib64" OS_SEP "setupapi.def", false},
- {"winmm", "lib-common" OS_SEP "winmm.def", false},
- {"gdi32", "lib-common" OS_SEP "gdi32.def", false},
- {"imm32", "lib-common" OS_SEP "imm32.def", false},
- {"version", "lib-common" OS_SEP "version.def", false},
- {"advapi32", "lib-common" OS_SEP "advapi32.def.in", true},
- {"oleaut32", "lib-common" OS_SEP "oleaut32.def.in", false},
- {"ole32", "lib-common" OS_SEP "ole32.def.in", false},
- {"shell32", "lib-common" OS_SEP "shell32.def", true},
- {"user32", "lib-common" OS_SEP "user32.def.in", true},
- {"kernel32", "lib-common" OS_SEP "kernel32.def.in", true},
- {"ntdll", "libarm32" OS_SEP "ntdll.def", true},
- {"ntdll", "lib32" OS_SEP "ntdll.def", true},
- {"ntdll", "lib64" OS_SEP "ntdll.def", true},
+ {"advapi32",true},
+ {"bcrypt", false},
+ {"comctl32",false},
+ {"comdlg32",false},
+ {"crypt32", false},
+ {"cryptnet",false},
+ {"gdi32", false},
+ {"imm32", false},
+ {"kernel32",true},
+ {"lz32", false},
+ {"mpr", false},
+ {"msvcrt", true},
+ {"mswsock", false},
+ {"ncrypt", false},
+ {"netapi32",false},
+ {"ntdll", true},
+ {"ole32", false},
+ {"oleaut32",false},
+ {"opengl32",false},
+ {"rpcns4", false},
+ {"rpcrt4", false},
+ {"scarddlg",false},
+ {"setupapi",false},
+ {"shell32", true},
+ {"urlmon", false},
+ {"user32", true},
+ {"version", false},
+ {"winmm", false},
+ {"winscard",false},
+ {"winspool",false},
+ {"wintrust",false},
+ {"ws2_32", false},
};
struct LinkJob {
@@ -1955,7 +1968,7 @@ static void print_zig_cc_cmd(ZigList<const char *> *args) {
fprintf(stderr, "\n");
}
-static const char *get_def_lib(CodeGen *parent, const char *name, Buf *def_in_rel_path) {
+static const char *get_def_lib(CodeGen *parent, const char *name, Buf *def_in_file) {
Error err;
Buf *self_exe_path = buf_alloc();
@@ -1973,8 +1986,6 @@ static const char *get_def_lib(CodeGen *parent, const char *name, Buf *def_in_re
Buf *o_dir = buf_sprintf("%s" OS_SEP CACHE_OUT_SUBDIR, buf_ptr(cache_dir));
Buf *manifest_dir = buf_sprintf("%s" OS_SEP CACHE_HASH_SUBDIR, buf_ptr(cache_dir));
- Buf *def_in_file = buf_sprintf("%s" OS_SEP "libc" OS_SEP "mingw" OS_SEP "%s",
- buf_ptr(parent->zig_lib_dir), buf_ptr(def_in_rel_path));
Buf *def_include_dir = buf_sprintf("%s" OS_SEP "libc" OS_SEP "mingw" OS_SEP "def-include",
buf_ptr(parent->zig_lib_dir));
@@ -2062,18 +2073,12 @@ static const char *get_def_lib(CodeGen *parent, const char *name, Buf *def_in_re
lib_final_path = buf_alloc();
os_path_join(artifact_dir, final_lib_basename, lib_final_path);
- args.resize(0);
- args.append("link");
- coff_append_machine_arg(parent, &args);
-
- args.append(buf_ptr(buf_sprintf("-DEF:%s", buf_ptr(def_final_path))));
- args.append(buf_ptr(buf_sprintf("-OUT:%s", buf_ptr(lib_final_path))));
-
- Buf diag = BUF_INIT;
- ZigLLVM_ObjectFormatType target_ofmt = target_object_format(parent->zig_target);
- if (!zig_lld_link(target_ofmt, args.items, args.length, &diag)) {
- fprintf(stderr, "%s\n", buf_ptr(&diag));
- exit(1);
+ if (ZigLLVMWriteImportLibrary(buf_ptr(def_final_path),
+ parent->zig_target->arch,
+ buf_ptr(lib_final_path),
+ /* kill_at */ true))
+ {
+ zig_panic("link: could not emit %s", buf_ptr(lib_final_path));
}
} else {
// cache hit
@@ -2097,6 +2102,60 @@ static bool is_linking_system_lib(CodeGen *g, const char *name) {
return false;
}
+static Error find_mingw_lib_def(LinkJob *lj, const char *name, Buf *out_path) {
+ CodeGen *g = lj->codegen;
+ Buf override_path = BUF_INIT;
+ Error err;
+
+ char const *lib_path = nullptr;
+ if (g->zig_target->arch == ZigLLVM_x86) {
+ lib_path = "lib32";
+ } else if (g->zig_target->arch == ZigLLVM_x86_64) {
+ lib_path = "lib64";
+ } else if (target_is_arm(g->zig_target)) {
+ const bool is_32 = target_arch_pointer_bit_width(g->zig_target->arch) == 32;
+ lib_path = is_32 ? "libarm32" : "libarm64";
+ } else {
+ zig_unreachable();
+ }
+
+ // Try the archtecture-specific path first
+ buf_resize(&override_path, 0);
+ buf_appendf(&override_path, "%s" OS_SEP "libc" OS_SEP "mingw" OS_SEP "%s" OS_SEP "%s.def", buf_ptr(g->zig_lib_dir), lib_path, name);
+
+ bool does_exist;
+ if ((err = os_file_exists(&override_path, &does_exist)) != ErrorNone) {
+ return err;
+ }
+
+ if (!does_exist) {
+ // Try the generic version
+ buf_resize(&override_path, 0);
+ buf_appendf(&override_path, "%s" OS_SEP "libc" OS_SEP "mingw" OS_SEP "lib-common" OS_SEP "%s.def", buf_ptr(g->zig_lib_dir), name);
+
+ if ((err = os_file_exists(&override_path, &does_exist)) != ErrorNone) {
+ return err;
+ }
+ }
+
+ if (!does_exist) {
+ // Try the generic version and preprocess it
+ buf_resize(&override_path, 0);
+ buf_appendf(&override_path, "%s" OS_SEP "libc" OS_SEP "mingw" OS_SEP "lib-common" OS_SEP "%s.def.in", buf_ptr(g->zig_lib_dir), name);
+
+ if ((err = os_file_exists(&override_path, &does_exist)) != ErrorNone) {
+ return err;
+ }
+ }
+
+ if (!does_exist) {
+ return ErrorFileNotFound;
+ }
+
+ buf_init_from_buf(out_path, &override_path);
+ return ErrorNone;
+}
+
static void add_mingw_link_args(LinkJob *lj, bool is_library) {
CodeGen *g = lj->codegen;
@@ -2122,24 +2181,20 @@ static void add_mingw_link_args(LinkJob *lj, bool is_library) {
for (size_t def_i = 0; def_i < array_length(mingw_def_list); def_i += 1) {
const char *name = mingw_def_list[def_i].name;
- Buf *path = buf_create_from_str(mingw_def_list[def_i].path);
- bool always_link = mingw_def_list[def_i].always_link;
- bool is_this_arch = false;
- if (buf_starts_with_str(path, "lib-common" OS_SEP)) {
- is_this_arch = true;
- } else if (target_is_arm(g->zig_target)) {
- if (target_arch_pointer_bit_width(g->zig_target->arch) == 32) {
- is_this_arch = buf_starts_with_str(path, "libarm32" OS_SEP);
- } else {
- is_this_arch = buf_starts_with_str(path, "libarm64" OS_SEP);
+ const bool always_link = mingw_def_list[def_i].always_link;
+
+ if (always_link || is_linking_system_lib(g, name)) {
+ Buf lib_path = BUF_INIT;
+ Error err = find_mingw_lib_def(lj, name, &lib_path);
+
+ if (err == ErrorFileNotFound) {
+ zig_panic("link: could not find .def file to build %s\n", name);
+ } else if (err != ErrorNone) {
+ zig_panic("link: unable to check if .def file for %s exists: %s",
+ name, err_str(err));
}
- } else if (g->zig_target->arch == ZigLLVM_x86) {
- is_this_arch = buf_starts_with_str(path, "lib32" OS_SEP);
- } else if (g->zig_target->arch == ZigLLVM_x86_64) {
- is_this_arch = buf_starts_with_str(path, "lib64" OS_SEP);
- }
- if (is_this_arch && (always_link || is_linking_system_lib(g, name))) {
- lj->args.append(get_def_lib(g, name, path));
+
+ lj->args.append(get_def_lib(g, name, &lib_path));
}
}
}
@@ -2273,8 +2328,6 @@ static void construct_linker_job_coff(LinkJob *lj) {
lj->args.append(buf_ptr(compiler_rt_o_path));
}
- Buf *def_contents = buf_alloc();
- ZigList<const char *> gen_lib_args = {0};
for (size_t lib_i = 0; lib_i < g->link_libs_list.length; lib_i += 1) {
LinkLib *link_lib = g->link_libs_list.at(lib_i);
if (buf_eql_str(link_lib->name, "c")) {
@@ -2297,36 +2350,27 @@ static void construct_linker_job_coff(LinkJob *lj) {
continue;
}
- buf_resize(def_contents, 0);
- buf_appendf(def_contents, "LIBRARY %s\nEXPORTS\n", buf_ptr(link_lib->name));
- for (size_t exp_i = 0; exp_i < link_lib->symbols.length; exp_i += 1) {
- Buf *symbol_name = link_lib->symbols.at(exp_i);
- buf_appendf(def_contents, "%s\n", buf_ptr(symbol_name));
- }
- buf_appendf(def_contents, "\n");
-
- Buf *def_path = buf_alloc();
- os_path_join(g->output_dir, buf_sprintf("%s.def", buf_ptr(link_lib->name)), def_path);
- if ((err = os_write_file(def_path, def_contents))) {
- zig_panic("error writing def file: %s", err_str(err));
- }
+ // This library may be a system one and we may have a suitable .lib file
- Buf *generated_lib_path = buf_alloc();
- os_path_join(g->output_dir, buf_sprintf("%s.lib", buf_ptr(link_lib->name)), generated_lib_path);
+ // Normalize the library name to lower case, the FS may be
+ // case-sensitive
+ char *name = strdup(buf_ptr(link_lib->name));
+ assert(name != nullptr);
+ for (char *ch = name; *ch; ++ch) *ch = tolower(*ch);
- gen_lib_args.resize(0);
- gen_lib_args.append("link");
+ Buf lib_path = BUF_INIT;
+ err = find_mingw_lib_def(lj, name, &lib_path);
- coff_append_machine_arg(g, &gen_lib_args);
- gen_lib_args.append(buf_ptr(buf_sprintf("-DEF:%s", buf_ptr(def_path))));
- gen_lib_args.append(buf_ptr(buf_sprintf("-OUT:%s", buf_ptr(generated_lib_path))));
- Buf diag = BUF_INIT;
- ZigLLVM_ObjectFormatType target_ofmt = target_object_format(g->zig_target);
- if (!zig_lld_link(target_ofmt, gen_lib_args.items, gen_lib_args.length, &diag)) {
- fprintf(stderr, "%s\n", buf_ptr(&diag));
- exit(1);
+ if (err == ErrorFileNotFound) {
+ zig_panic("link: could not find .def file to build %s\n", name);
+ } else if (err != ErrorNone) {
+ zig_panic("link: unable to check if .def file for %s exists: %s",
+ name, err_str(err));
}
- lj->args.append(buf_ptr(generated_lib_path));
+
+ lj->args.append(get_def_lib(g, name, &lib_path));
+
+ free(name);
}
}
diff --git a/src/main.cpp b/src/main.cpp
@@ -65,7 +65,8 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) {
" -ftime-report print timing diagnostics\n"
" -fstack-report print stack size diagnostics\n"
" -fdump-analysis write analysis.json file with type information\n"
- " -fgenerate-docs create a docs/ dir with html documentation\n"
+ " -femit-docs create a docs/ dir with html documentation\n"
+ " -fno-emit-bin skip emitting machine code\n"
" --libc [file] Provide a file which specifies libc paths\n"
" --name [name] override output name\n"
" --output-dir [dir] override output directory (defaults to cwd)\n"
@@ -87,8 +88,9 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) {
" --verbose-llvm-ir enable compiler debug output for LLVM IR\n"
" --verbose-cimport enable compiler debug output for C imports\n"
" --verbose-cc enable compiler debug output for C compilation\n"
- " -dirafter [dir] same as -isystem but do it last\n"
- " -isystem [dir] add additional search path for other .h files\n"
+ " -dirafter [dir] add directory to AFTER include search path\n"
+ " -isystem [dir] add directory to SYSTEM include search path\n"
+ " -I[dir] add directory to include search path\n"
" -mllvm [arg] (unsupported) forward an arg to LLVM's option processing\n"
" --override-lib-dir [arg] override path to Zig lib directory\n"
" -ffunction-sections places each function in a separate section\n"
@@ -483,6 +485,7 @@ int main(int argc, char **argv) {
bool stack_report = false;
bool enable_dump_analysis = false;
bool enable_doc_generation = false;
+ bool disable_bin_generation = false;
const char *cache_dir = nullptr;
CliPkg *cur_pkg = allocate<CliPkg>(1);
BuildMode build_mode = BuildModeDebug;
@@ -668,8 +671,10 @@ int main(int argc, char **argv) {
stack_report = true;
} else if (strcmp(arg, "-fdump-analysis") == 0) {
enable_dump_analysis = true;
- } else if (strcmp(arg, "-fgenerate-docs") == 0) {
+ } else if (strcmp(arg, "-femit-docs") == 0) {
enable_doc_generation = true;
+ } else if (strcmp(arg, "-fno-emit-bin") == 0) {
+ disable_bin_generation = true;
} else if (strcmp(arg, "--enable-valgrind") == 0) {
valgrind_support = ValgrindSupportEnabled;
} else if (strcmp(arg, "--disable-valgrind") == 0) {
@@ -704,6 +709,9 @@ int main(int argc, char **argv) {
if (strcmp(l, "c") == 0)
have_libc = true;
link_libs.append(l);
+ } else if (arg[1] == 'I' && arg[2] != 0) {
+ clang_argv.append("-I");
+ clang_argv.append(&arg[2]);
} else if (arg[1] == 'F' && arg[2] != 0) {
framework_dirs.append(&arg[2]);
} else if (strcmp(arg, "--pkg-begin") == 0) {
@@ -779,6 +787,9 @@ int main(int argc, char **argv) {
} else if (strcmp(arg, "-isystem") == 0) {
clang_argv.append("-isystem");
clang_argv.append(argv[i]);
+ } else if (strcmp(arg, "-I") == 0) {
+ clang_argv.append("-I");
+ clang_argv.append(argv[i]);
} else if (strcmp(arg, "-dirafter") == 0) {
clang_argv.append("-dirafter");
clang_argv.append(argv[i]);
@@ -1148,6 +1159,7 @@ int main(int argc, char **argv) {
g->enable_stack_report = stack_report;
g->enable_dump_analysis = enable_dump_analysis;
g->enable_doc_generation = enable_doc_generation;
+ g->disable_bin_generation = disable_bin_generation;
codegen_set_out_name(g, buf_out_name);
codegen_set_lib_version(g, ver_major, ver_minor, ver_patch);
g->want_single_threaded = want_single_threaded;
@@ -1290,6 +1302,11 @@ int main(int argc, char **argv) {
zig_print_stack_report(g, stdout);
}
+ if (g->disable_bin_generation) {
+ fprintf(stderr, "Semantic analysis complete. No binary produced due to -fno-emit-bin.\n");
+ return 0;
+ }
+
Buf *test_exe_path_unresolved = &g->output_file_path;
Buf *test_exe_path = buf_alloc();
*test_exe_path = os_path_resolve(&test_exe_path_unresolved, 1);
diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp
@@ -34,6 +34,9 @@
#include <llvm/MC/SubtargetFeature.h>
#include <llvm/Object/Archive.h>
#include <llvm/Object/ArchiveWriter.h>
+#include <llvm/Object/COFF.h>
+#include <llvm/Object/COFFImportFile.h>
+#include <llvm/Object/COFFModuleDefinition.h>
#include <llvm/PassRegistry.h>
#include <llvm/Support/FileSystem.h>
#include <llvm/Support/TargetParser.h>
@@ -938,6 +941,85 @@ class MyOStream: public raw_ostream {
size_t pos;
};
+bool ZigLLVMWriteImportLibrary(const char *def_path, const ZigLLVM_ArchType arch,
+ const char *output_lib_path, const bool kill_at)
+{
+ COFF::MachineTypes machine = COFF::IMAGE_FILE_MACHINE_UNKNOWN;
+
+ switch (arch) {
+ case ZigLLVM_x86:
+ machine = COFF::IMAGE_FILE_MACHINE_I386;
+ break;
+ case ZigLLVM_x86_64:
+ machine = COFF::IMAGE_FILE_MACHINE_AMD64;
+ break;
+ case ZigLLVM_arm:
+ case ZigLLVM_armeb:
+ case ZigLLVM_thumb:
+ case ZigLLVM_thumbeb:
+ machine = COFF::IMAGE_FILE_MACHINE_ARMNT;
+ break;
+ case ZigLLVM_aarch64:
+ case ZigLLVM_aarch64_be:
+ machine = COFF::IMAGE_FILE_MACHINE_ARM64;
+ break;
+ default:
+ break;
+ }
+
+ if (machine == COFF::IMAGE_FILE_MACHINE_UNKNOWN) {
+ return true;
+ }
+
+ auto bufOrErr = MemoryBuffer::getFile(def_path);
+ if (!bufOrErr) {
+ return false;
+ }
+
+ MemoryBuffer& buf = *bufOrErr.get();
+ Expected<object::COFFModuleDefinition> def =
+ object::parseCOFFModuleDefinition(buf, machine, /* MingwDef */ true);
+
+ if (!def) {
+ return true;
+ }
+
+ // The exports-juggling code below is ripped from LLVM's DllToolDriver.cpp
+
+ // If ExtName is set (if the "ExtName = Name" syntax was used), overwrite
+ // Name with ExtName and clear ExtName. When only creating an import
+ // library and not linking, the internal name is irrelevant. This avoids
+ // cases where writeImportLibrary tries to transplant decoration from
+ // symbol decoration onto ExtName.
+ for (object::COFFShortExport& E : def->Exports) {
+ if (!E.ExtName.empty()) {
+ E.Name = E.ExtName;
+ E.ExtName.clear();
+ }
+ }
+
+ if (machine == COFF::IMAGE_FILE_MACHINE_I386 && kill_at) {
+ for (object::COFFShortExport& E : def->Exports) {
+ if (!E.AliasTarget.empty() || (!E.Name.empty() && E.Name[0] == '?'))
+ continue;
+ E.SymbolName = E.Name;
+ // Trim off the trailing decoration. Symbols will always have a
+ // starting prefix here (either _ for cdecl/stdcall, @ for fastcall
+ // or ? for C++ functions). Vectorcall functions won't have any
+ // fixed prefix, but the function base name will still be at least
+ // one char.
+ E.Name = E.Name.substr(0, E.Name.find('@', 1));
+ // By making sure E.SymbolName != E.Name for decorated symbols,
+ // writeImportLibrary writes these symbols with the type
+ // IMPORT_NAME_UNDECORATE.
+ }
+ }
+
+ return static_cast<bool>(
+ object::writeImportLibrary(def->OutputFile, output_lib_path,
+ def->Exports, machine, /* MinGW */ true));
+}
+
bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size_t file_name_count,
ZigLLVM_OSType os_type)
{
diff --git a/src/zig_llvm.h b/src/zig_llvm.h
@@ -465,6 +465,9 @@ ZIG_EXTERN_C bool ZigLLDLink(enum ZigLLVM_ObjectFormatType oformat, const char *
ZIG_EXTERN_C bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size_t file_name_count,
enum ZigLLVM_OSType os_type);
+bool ZigLLVMWriteImportLibrary(const char *def_path, const ZigLLVM_ArchType arch,
+ const char *output_lib_path, const bool kill_at);
+
ZIG_EXTERN_C void ZigLLVMGetNativeTarget(enum ZigLLVM_ArchType *arch_type, enum ZigLLVM_SubArchType *sub_arch_type,
enum ZigLLVM_VendorType *vendor_type, enum ZigLLVM_OSType *os_type, enum ZigLLVM_EnvironmentType *environ_type,
enum ZigLLVM_ObjectFormatType *oformat);
diff --git a/test/stage1/behavior/align.zig b/test/stage1/behavior/align.zig
@@ -328,3 +328,10 @@ test "align(@alignOf(T)) T does not force resolution of T" {
_ = async S.doTheTest();
expect(S.ok);
}
+
+test "align(N) on functions" {
+ expect((@ptrToInt(overaligned_fn) & (0x1000 - 1)) == 0);
+}
+fn overaligned_fn() align(0x1000) i32 {
+ return 42;
+}
diff --git a/test/stage1/behavior/struct.zig b/test/stage1/behavior/struct.zig
@@ -689,3 +689,23 @@ test "non-packed struct with u128 entry in union" {
s.f2 = v2;
std.testing.expect(s.f2.Num == 123);
}
+
+test "packed struct field passed to generic function" {
+ const S = struct {
+ const P = packed struct {
+ b: u5,
+ g: u5,
+ r: u5,
+ a: u1,
+ };
+
+ fn genericReadPackedField(ptr: var) u5 {
+ return ptr.*;
+ }
+ };
+
+ var p: S.P = undefined;
+ p.b = 29;
+ var loaded = S.genericReadPackedField(&p.b);
+ expect(loaded == 29);
+}
diff --git a/test/tests.zig b/test/tests.zig
@@ -167,6 +167,16 @@ const test_targets = [_]TestTarget{
.target = Target{
.Cross = CrossTarget{
.os = .windows,
+ .arch = .i386,
+ .abi = .msvc,
+ },
+ },
+ },
+
+ TestTarget{
+ .target = Target{
+ .Cross = CrossTarget{
+ .os = .windows,
.arch = .x86_64,
.abi = .msvc,
},
@@ -177,6 +187,17 @@ const test_targets = [_]TestTarget{
.target = Target{
.Cross = CrossTarget{
.os = .windows,
+ .arch = .i386,
+ .abi = .gnu,
+ },
+ },
+ .link_libc = true,
+ },
+
+ TestTarget{
+ .target = Target{
+ .Cross = CrossTarget{
+ .os = .windows,
.arch = .x86_64,
.abi = .gnu,
},
diff --git a/tools/merge_anal_dumps.zig b/tools/merge_anal_dumps.zig
@@ -0,0 +1,454 @@
+const builtin = @import("builtin");
+const std = @import("std");
+const json = std.json;
+const mem = std.mem;
+const fieldIndex = std.meta.fieldIndex;
+const TypeId = builtin.TypeId;
+
+pub fn main() anyerror!void {
+ var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
+ defer arena.deinit();
+
+ const allocator = &arena.allocator;
+
+ const args = try std.process.argsAlloc(allocator);
+
+ var parser: json.Parser = undefined;
+ var dump = Dump.init(allocator);
+ for (args[1..]) |arg| {
+ parser = json.Parser.init(allocator, false);
+ const json_text = try std.io.readFileAlloc(allocator, arg);
+ const tree = try parser.parse(json_text);
+ try dump.mergeJson(tree.root);
+ }
+
+ const stdout = try std.io.getStdOut();
+ try dump.render(&stdout.outStream().stream);
+}
+
+/// AST source node
+const Node = struct {
+ file: usize,
+ line: usize,
+ col: usize,
+ fields: []usize,
+
+ fn hash(n: Node) u32 {
+ var hasher = std.hash.Wyhash.init(0);
+ std.hash.autoHash(&hasher, n.file);
+ std.hash.autoHash(&hasher, n.line);
+ std.hash.autoHash(&hasher, n.col);
+ return @truncate(u32, hasher.final());
+ }
+
+ fn eql(a: Node, b: Node) bool {
+ return a.file == b.file and
+ a.line == b.line and
+ a.col == b.col;
+ }
+};
+
+const Error = struct {
+ src: usize,
+ name: []const u8,
+
+ fn hash(n: Error) u32 {
+ var hasher = std.hash.Wyhash.init(0);
+ std.hash.autoHash(&hasher, n.src);
+ return @truncate(u32, hasher.final());
+ }
+
+ fn eql(a: Error, b: Error) bool {
+ return a.src == b.src;
+ }
+};
+
+const simple_types = [_][]const u8{
+ "Type",
+ "Void",
+ "Bool",
+ "NoReturn",
+ "ComptimeFloat",
+ "ComptimeInt",
+ "Undefined",
+ "Null",
+ "AnyFrame",
+ "EnumLiteral",
+};
+
+const Type = union(builtin.TypeId) {
+ Type,
+ Void,
+ Bool,
+ NoReturn,
+ ComptimeFloat,
+ ComptimeInt,
+ Undefined,
+ Null,
+ AnyFrame,
+ EnumLiteral,
+
+ Int: Int,
+ Float: usize, // bits
+
+ Vector: Array,
+ Optional: usize, // payload type index
+ Pointer: Pointer,
+ Array: Array,
+
+ Struct, // TODO
+ ErrorUnion, // TODO
+ ErrorSet, // TODO
+ Enum, // TODO
+ Union, // TODO
+ Fn, // TODO
+ BoundFn, // TODO
+ ArgTuple, // TODO
+ Opaque, // TODO
+ Frame, // TODO
+
+ const Int = struct {
+ bits: usize,
+ signed: bool,
+ };
+
+ const Pointer = struct {
+ elem: usize,
+ alignment: usize,
+ is_const: bool,
+ is_volatile: bool,
+ allow_zero: bool,
+ host_int_bytes: usize,
+ bit_offset_in_host: usize,
+ };
+
+ const Array = struct {
+ elem: usize,
+ len: usize,
+ };
+
+ fn hash(t: Type) u32 {
+ var hasher = std.hash.Wyhash.init(0);
+ std.hash.autoHash(&hasher, builtin.TypeId(t));
+ return @truncate(u32, hasher.final());
+ }
+
+ fn eql(a: Type, b: Type) bool {
+ return std.meta.eql(a, b);
+ }
+};
+
+const Dump = struct {
+ zig_id: ?[]const u8 = null,
+ zig_version: ?[]const u8 = null,
+ root_name: ?[]const u8 = null,
+ targets: std.ArrayList([]const u8),
+
+ const FileMap = std.StringHashMap(usize);
+ file_list: std.ArrayList([]const u8),
+ file_map: FileMap,
+
+ const NodeMap = std.HashMap(Node, usize, Node.hash, Node.eql);
+ node_list: std.ArrayList(Node),
+ node_map: NodeMap,
+
+ const ErrorMap = std.HashMap(Error, usize, Error.hash, Error.eql);
+ error_list: std.ArrayList(Error),
+ error_map: ErrorMap,
+
+ const TypeMap = std.HashMap(Type, usize, Type.hash, Type.eql);
+ type_list: std.ArrayList(Type),
+ type_map: TypeMap,
+
+ fn init(allocator: *mem.Allocator) Dump {
+ return Dump{
+ .targets = std.ArrayList([]const u8).init(allocator),
+ .file_list = std.ArrayList([]const u8).init(allocator),
+ .file_map = FileMap.init(allocator),
+ .node_list = std.ArrayList(Node).init(allocator),
+ .node_map = NodeMap.init(allocator),
+ .error_list = std.ArrayList(Error).init(allocator),
+ .error_map = ErrorMap.init(allocator),
+ .type_list = std.ArrayList(Type).init(allocator),
+ .type_map = TypeMap.init(allocator),
+ };
+ }
+
+ fn mergeJson(self: *Dump, root: json.Value) !void {
+ const params = &root.Object.get("params").?.value.Object;
+ const zig_id = params.get("zigId").?.value.String;
+ const zig_version = params.get("zigVersion").?.value.String;
+ const root_name = params.get("rootName").?.value.String;
+ try mergeSameStrings(&self.zig_id, zig_id);
+ try mergeSameStrings(&self.zig_version, zig_version);
+ try mergeSameStrings(&self.root_name, root_name);
+
+ for (params.get("builds").?.value.Array.toSliceConst()) |json_build| {
+ const target = json_build.Object.get("target").?.value.String;
+ try self.targets.append(target);
+ }
+
+ // Merge files. If the string matches, it's the same file.
+ const other_files = root.Object.get("files").?.value.Array.toSliceConst();
+ var other_file_to_mine = std.AutoHashMap(usize, usize).init(self.a());
+ for (other_files) |other_file, i| {
+ const gop = try self.file_map.getOrPut(other_file.String);
+ if (!gop.found_existing) {
+ gop.kv.value = self.file_list.len;
+ try self.file_list.append(other_file.String);
+ }
+ try other_file_to_mine.putNoClobber(i, gop.kv.value);
+ }
+
+ // Merge AST nodes. If the file id, line, and column all match, it's the same AST node.
+ const other_ast_nodes = root.Object.get("astNodes").?.value.Array.toSliceConst();
+ var other_ast_node_to_mine = std.AutoHashMap(usize, usize).init(self.a());
+ for (other_ast_nodes) |other_ast_node_json, i| {
+ const other_file_id = jsonObjInt(other_ast_node_json, "file");
+ const other_node = Node{
+ .line = jsonObjInt(other_ast_node_json, "line"),
+ .col = jsonObjInt(other_ast_node_json, "col"),
+ .file = other_file_to_mine.getValue(other_file_id).?,
+ .fields = ([*]usize)(undefined)[0..0],
+ };
+ const gop = try self.node_map.getOrPut(other_node);
+ if (!gop.found_existing) {
+ gop.kv.value = self.node_list.len;
+ try self.node_list.append(other_node);
+ }
+ try other_ast_node_to_mine.putNoClobber(i, gop.kv.value);
+ }
+ // convert fields lists
+ for (other_ast_nodes) |other_ast_node_json, i| {
+ const my_node_index = other_ast_node_to_mine.get(i).?.value;
+ const my_node = &self.node_list.toSlice()[my_node_index];
+ if (other_ast_node_json.Object.get("fields")) |fields_json_kv| {
+ const other_fields = fields_json_kv.value.Array.toSliceConst();
+ my_node.fields = try self.a().alloc(usize, other_fields.len);
+ for (other_fields) |other_field_index, field_i| {
+ const other_index = @intCast(usize, other_field_index.Integer);
+ my_node.fields[field_i] = other_ast_node_to_mine.get(other_index).?.value;
+ }
+ }
+ }
+
+ // Merge errors. If the AST Node matches, it's the same error value.
+ const other_errors = root.Object.get("errors").?.value.Array.toSliceConst();
+ var other_error_to_mine = std.AutoHashMap(usize, usize).init(self.a());
+ for (other_errors) |other_error_json, i| {
+ const other_src_id = jsonObjInt(other_error_json, "src");
+ const other_error = Error{
+ .src = other_ast_node_to_mine.getValue(other_src_id).?,
+ .name = other_error_json.Object.get("name").?.value.String,
+ };
+ const gop = try self.error_map.getOrPut(other_error);
+ if (!gop.found_existing) {
+ gop.kv.value = self.error_list.len;
+ try self.error_list.append(other_error);
+ }
+ try other_error_to_mine.putNoClobber(i, gop.kv.value);
+ }
+
+ // Merge types. Now it starts to get advanced.
+ // First we identify all the simple types and merge those.
+ // Example: void, type, noreturn
+ // We can also do integers and floats.
+ const other_types = root.Object.get("types").?.value.Array.toSliceConst();
+ var other_types_to_mine = std.AutoHashMap(usize, usize).init(self.a());
+ for (other_types) |other_type_json, i| {
+ const type_kind = jsonObjInt(other_type_json, "kind");
+ switch (type_kind) {
+ fieldIndex(TypeId, "Int").? => {
+ var signed: bool = undefined;
+ var bits: usize = undefined;
+ if (other_type_json.Object.get("i")) |kv| {
+ signed = true;
+ bits = @intCast(usize, kv.value.Integer);
+ } else if (other_type_json.Object.get("u")) |kv| {
+ signed = false;
+ bits = @intCast(usize, kv.value.Integer);
+ } else {
+ unreachable;
+ }
+ const other_type = Type{
+ .Int = Type.Int{
+ .bits = bits,
+ .signed = signed,
+ },
+ };
+ try self.mergeOtherType(other_type, i, &other_types_to_mine);
+ },
+ fieldIndex(TypeId, "Float").? => {
+ const other_type = Type{
+ .Float = jsonObjInt(other_type_json, "bits"),
+ };
+ try self.mergeOtherType(other_type, i, &other_types_to_mine);
+ },
+ else => {},
+ }
+
+ inline for (simple_types) |simple_type_name| {
+ if (type_kind == std.meta.fieldIndex(builtin.TypeId, simple_type_name).?) {
+ const other_type = @unionInit(Type, simple_type_name, {});
+ try self.mergeOtherType(other_type, i, &other_types_to_mine);
+ }
+ }
+ }
+ }
+
+ fn mergeOtherType(
+ self: *Dump,
+ other_type: Type,
+ other_type_index: usize,
+ other_types_to_mine: *std.AutoHashMap(usize, usize),
+ ) !void {
+ const gop = try self.type_map.getOrPut(other_type);
+ if (!gop.found_existing) {
+ gop.kv.value = self.type_list.len;
+ try self.type_list.append(other_type);
+ }
+ try other_types_to_mine.putNoClobber(other_type_index, gop.kv.value);
+ }
+
+ fn render(self: *Dump, stream: var) !void {
+ var jw = json.WriteStream(@typeOf(stream).Child, 10).init(stream);
+ try jw.beginObject();
+
+ try jw.objectField("typeKinds");
+ try jw.beginArray();
+ inline for (@typeInfo(builtin.TypeId).Enum.fields) |field| {
+ try jw.arrayElem();
+ try jw.emitString(field.name);
+ }
+ try jw.endArray();
+
+ try jw.objectField("params");
+ try jw.beginObject();
+
+ try jw.objectField("zigId");
+ try jw.emitString(self.zig_id.?);
+
+ try jw.objectField("zigVersion");
+ try jw.emitString(self.zig_version.?);
+
+ try jw.objectField("rootName");
+ try jw.emitString(self.root_name.?);
+
+ try jw.objectField("builds");
+ try jw.beginArray();
+ for (self.targets.toSliceConst()) |target| {
+ try jw.arrayElem();
+ try jw.beginObject();
+ try jw.objectField("target");
+ try jw.emitString(target);
+ try jw.endObject();
+ }
+ try jw.endArray();
+
+ try jw.endObject();
+
+ try jw.objectField("types");
+ try jw.beginArray();
+ for (self.type_list.toSliceConst()) |t| {
+ try jw.arrayElem();
+ try jw.beginObject();
+
+ try jw.objectField("kind");
+ try jw.emitNumber(@enumToInt(builtin.TypeId(t)));
+
+ switch (t) {
+ .Int => |int| {
+ if (int.signed) {
+ try jw.objectField("i");
+ } else {
+ try jw.objectField("u");
+ }
+ try jw.emitNumber(int.bits);
+ },
+ .Float => |bits| {
+ try jw.objectField("bits");
+ try jw.emitNumber(bits);
+ },
+
+ else => {},
+ }
+
+ try jw.endObject();
+ }
+ try jw.endArray();
+
+ try jw.objectField("errors");
+ try jw.beginArray();
+ for (self.error_list.toSliceConst()) |zig_error| {
+ try jw.arrayElem();
+ try jw.beginObject();
+
+ try jw.objectField("src");
+ try jw.emitNumber(zig_error.src);
+
+ try jw.objectField("name");
+ try jw.emitString(zig_error.name);
+
+ try jw.endObject();
+ }
+ try jw.endArray();
+
+ try jw.objectField("astNodes");
+ try jw.beginArray();
+ for (self.node_list.toSliceConst()) |node| {
+ try jw.arrayElem();
+ try jw.beginObject();
+
+ try jw.objectField("file");
+ try jw.emitNumber(node.file);
+
+ try jw.objectField("line");
+ try jw.emitNumber(node.line);
+
+ try jw.objectField("col");
+ try jw.emitNumber(node.col);
+
+ if (node.fields.len != 0) {
+ try jw.objectField("fields");
+ try jw.beginArray();
+
+ for (node.fields) |field_node_index| {
+ try jw.arrayElem();
+ try jw.emitNumber(field_node_index);
+ }
+ try jw.endArray();
+ }
+
+ try jw.endObject();
+ }
+ try jw.endArray();
+
+ try jw.objectField("files");
+ try jw.beginArray();
+ for (self.file_list.toSliceConst()) |file| {
+ try jw.arrayElem();
+ try jw.emitString(file);
+ }
+ try jw.endArray();
+
+ try jw.endObject();
+ }
+
+ fn a(self: Dump) *mem.Allocator {
+ return self.targets.allocator;
+ }
+
+ fn mergeSameStrings(opt_dest: *?[]const u8, src: []const u8) !void {
+ if (opt_dest.*) |dest| {
+ if (!mem.eql(u8, dest, src))
+ return error.MismatchedDumps;
+ } else {
+ opt_dest.* = src;
+ }
+ }
+};
+
+fn jsonObjInt(json_val: json.Value, field: []const u8) usize {
+ const uncasted = json_val.Object.get(field).?.value.Integer;
+ return @intCast(usize, uncasted);
+}