mirror of
https://github.com/reactos/reactos.git
synced 2025-03-10 18:24:02 +00:00
Implemented bitmap functions
svn path=/trunk/; revision=1040
This commit is contained in:
parent
c3f375c672
commit
89871935c1
6 changed files with 1199 additions and 250 deletions
|
@ -1,4 +1,4 @@
|
||||||
; $Id: ntdll.def,v 1.43 2000/03/03 00:40:29 ekohl Exp $
|
; $Id: ntdll.def,v 1.44 2000/03/09 00:13:37 ekohl Exp $
|
||||||
;
|
;
|
||||||
; ReactOS Operating System
|
; ReactOS Operating System
|
||||||
;
|
;
|
||||||
|
@ -223,6 +223,346 @@ NtWriteRequestData@24
|
||||||
NtWriteVirtualMemory@20
|
NtWriteVirtualMemory@20
|
||||||
NtW32Call@20
|
NtW32Call@20
|
||||||
NtYieldExecution@0
|
NtYieldExecution@0
|
||||||
|
;PfxFindPrefix
|
||||||
|
;PfxInitialize
|
||||||
|
;PfxInsertPrefix
|
||||||
|
;PfxRemovePrefix
|
||||||
|
;RtlAbortRXact
|
||||||
|
RtlAbsoluteToSelfRelativeSD@12
|
||||||
|
RtlAcquirePebLock@0
|
||||||
|
;RtlAcqureResourceExclusive
|
||||||
|
;RtlAcqureResourceShared
|
||||||
|
;RtlAddAccessAllowedAce
|
||||||
|
;RtlAddAccessDeniedAce
|
||||||
|
;RtlAddAce
|
||||||
|
;RtlAddActionToRXact
|
||||||
|
;RtlAtomToAtomTable
|
||||||
|
;RtlAddAttributeActionToRXact
|
||||||
|
;RtlAddAuditAccessToAce
|
||||||
|
;RtlAccCompoundAce
|
||||||
|
;RtlAdjustPrivilege
|
||||||
|
;RtlAllocateAndInitializeSid
|
||||||
|
;RtlAllocateHandle
|
||||||
|
RtlAllocateHeap@12
|
||||||
|
RtlAnsiCharToUnicodeChar@4
|
||||||
|
RtlAnsiStringToUnicodeSize@4
|
||||||
|
RtlAnsiStringToUnicodeString@12
|
||||||
|
RtlAppendAsciizToString@12
|
||||||
|
RtlAppendStringToString@12
|
||||||
|
RtlAppendUnicodeStringToString@12
|
||||||
|
RtlAppendUnicodeToString@12
|
||||||
|
;RtlApplyRXact
|
||||||
|
;RtlApplyRXactNoFlush
|
||||||
|
;RtlAreAllAccessesGranted
|
||||||
|
;RtlAreAnyAccessesGranted
|
||||||
|
RtlAreBitsClear@12
|
||||||
|
RtlAreBitsSet@12
|
||||||
|
;RtlAssert
|
||||||
|
;RtlCaptureStackBackTrace
|
||||||
|
RtlCharToInteger@12
|
||||||
|
;RtlCheckRegistryKey
|
||||||
|
RtlClearAllBits@4
|
||||||
|
RtlClearBits@12
|
||||||
|
;RtlClosePropertySet
|
||||||
|
RtlCompactHeap@8
|
||||||
|
RtlCompareMemory@12
|
||||||
|
RtlCompareMemoryUlong@12
|
||||||
|
RtlCompareString@12
|
||||||
|
RtlCompareUnicodeString@12
|
||||||
|
;RtlCompressBuffer
|
||||||
|
;RtlConsoleMultiByteToUnicodeN
|
||||||
|
;RtlConvertExclusiveToShared
|
||||||
|
RtlConvertLongToLargeInteger@4
|
||||||
|
;RtlConvertSharedToExclusive
|
||||||
|
;RtlConvertSidToUnicodeString
|
||||||
|
;RtlConvertUiListToApiList
|
||||||
|
RtlConvertUlongToLargeInteger@4
|
||||||
|
;RtlCopyLuid
|
||||||
|
;RtlCopyLuidAndAttributesArray
|
||||||
|
;RtlCopySecurityDescriptor
|
||||||
|
;RtlCopySid
|
||||||
|
;RtlCopySidAndAttributesArray
|
||||||
|
RtlCopyString@8
|
||||||
|
RtlCopyUnicodeString@8
|
||||||
|
;RtlCreateAcl
|
||||||
|
;RtlCreateAndSetSD
|
||||||
|
;RtlCreateAtomTable
|
||||||
|
RtlCreateEnvironment@8
|
||||||
|
RtlCreateHeap@24
|
||||||
|
RtlCreateProcessParameters@40
|
||||||
|
;RtlCreatePropertySet
|
||||||
|
;RtlCreateQueryDebugBuffer
|
||||||
|
;RtlCreateRegistryKey
|
||||||
|
RtlCreateSecurityDescriptor@8
|
||||||
|
;RtlCreateTagHeap
|
||||||
|
RtlCreateUnicodeString@8
|
||||||
|
RtlCreateUnicodeStringFromAsciiz@8
|
||||||
|
RtlCreateUserProcess@40
|
||||||
|
;RtlCreateuserSecurityObject
|
||||||
|
RtlCreateUserThread@40
|
||||||
|
;RtlCustomCPToUnicodeN
|
||||||
|
;RtlCutoverTimeToSystemTime
|
||||||
|
RtlDeNormalizeProcessParams@4
|
||||||
|
;RtlDecompressBuffer
|
||||||
|
;RtlDecompressFragment
|
||||||
|
;RtlDelete
|
||||||
|
;RtlDeleteAce
|
||||||
|
;RtlDeleteAtomFromAtomTable
|
||||||
|
;RtlDeleteCriticalSection
|
||||||
|
;RtlDeleteElementGenericTable
|
||||||
|
;RtlDeleteNoSplay
|
||||||
|
;RtlDeleteRegistryValue
|
||||||
|
;RtlDeleteResource
|
||||||
|
;RtlDeleteSecurityObject
|
||||||
|
;RtlDestroyAtomTable
|
||||||
|
RtlDestroyEnvironment@4
|
||||||
|
;RtlDestroyHandleTable
|
||||||
|
RtlDestroyHeap@4
|
||||||
|
RtlDestroyProcessParameters@4
|
||||||
|
;RtlDestroyQueryDebugBuffer
|
||||||
|
RtlDetermineDosPathNameType_U@4
|
||||||
|
RtlDoesFileExists_U@4
|
||||||
|
RtlDosPathNameToNtPathName_U@16
|
||||||
|
RtlDosSearchPath_U@24
|
||||||
|
RtlDowncaseUnicodeString@12
|
||||||
|
;RtlDumpResource
|
||||||
|
;RtlEmptyAtomTable
|
||||||
|
RtlEnlargedIntegerMultiply@8
|
||||||
|
RtlEnlargedUnsignedDivide@16
|
||||||
|
RtlEnlargedUnsignedMultiply@8
|
||||||
|
;RtlEnterCriticalSection
|
||||||
|
;RtlEnumProcessHeaps
|
||||||
|
;RtlEnumerateGenericTable
|
||||||
|
;RtlEnumerateGenericTableWithoutSplaying
|
||||||
|
;RtlEnumerateProperties
|
||||||
|
;RtlEqualComputerName
|
||||||
|
;RtlEqualDomainName
|
||||||
|
;RtlEqualLuid
|
||||||
|
;RtlEqualPrefixSid
|
||||||
|
;RtlEqualSid
|
||||||
|
RtlEqualString@12
|
||||||
|
RtlEqualUnicodeString@12
|
||||||
|
RtlEraseUnicodeString@4
|
||||||
|
RtlExpandEnvironmentStrings_U@16
|
||||||
|
;RtlExtendHeap
|
||||||
|
RtlExtendedIntegerMultiply@12
|
||||||
|
RtlExtendedLargeIntegerDivide@16
|
||||||
|
RtlExtendedMagicDivide@20
|
||||||
|
RtlFillMemory@12
|
||||||
|
RtlFillMemoryUlong@12
|
||||||
|
RtlFindClearBits@12
|
||||||
|
RtlFindClearBitsAndSet@12
|
||||||
|
RtlFindLongestRunClear@8
|
||||||
|
RtlFindLongestRunSet@8
|
||||||
|
;RtlFindMessage
|
||||||
|
RtlFindSetBits@12
|
||||||
|
RtlFindSetBitsAndClear@12
|
||||||
|
;RtlFirstFreeAce
|
||||||
|
;RtlFlushPropertySet
|
||||||
|
;RtlFormatCurrentUserKeyPath
|
||||||
|
;RtlFormatMessage
|
||||||
|
RtlFreeAnsiString@4
|
||||||
|
;RtlFreeHandle
|
||||||
|
RtlFreeHeap@12
|
||||||
|
RtlFreeOemString@4
|
||||||
|
;RtlFreeSid
|
||||||
|
RtlFreeUnicodeString@4
|
||||||
|
;RtlFreeUserThreadStack
|
||||||
|
;RtlGenerate8dot3Name
|
||||||
|
;RtlGetAce
|
||||||
|
;RtlGetCallersAddress
|
||||||
|
;RtlGetCompressionWorkSpaceSize
|
||||||
|
;RtlGetControlSecurityDescriptor
|
||||||
|
RtlGetCurrentDirectory_U@8
|
||||||
|
RtlGetDaclSecurityDescriptor@16
|
||||||
|
;RtlGetElementGenericTable
|
||||||
|
RtlGetFullPathName_U@16
|
||||||
|
RtlGetGroupSecurityDescriptor@12
|
||||||
|
RtlGetLongestNtPathLength@0
|
||||||
|
;RtlGetNtGlobalFlags
|
||||||
|
;RtlGetNtProductType
|
||||||
|
RtlGetOwnerSecurityDescriptor@12
|
||||||
|
;RtlGetProcessHeaps
|
||||||
|
RtlGetProcessHeap@0
|
||||||
|
;RtlGetSaclSecurityDescriptor
|
||||||
|
;RtlGetUserInfoHeap
|
||||||
|
;RtlGuidToPropertySetName
|
||||||
|
;RtlIdentifierAuthoritySid
|
||||||
|
;RtlImageDirectoryEntryToData
|
||||||
|
;RtlImageNtHeader
|
||||||
|
;RtlImageRvaToSection
|
||||||
|
;RtlImageRvaToVa
|
||||||
|
;RtlImpersonateSelf
|
||||||
|
RtlInitAnsiString@8
|
||||||
|
;RtlInitcodePageTable
|
||||||
|
;RtlInitNlsTables
|
||||||
|
RtlInitString@8
|
||||||
|
RtlInitUnicodeString@8
|
||||||
|
;RtlInitializeAtomPackage
|
||||||
|
RtlInitializeBitMap@12
|
||||||
|
RtlInitializeContext@20
|
||||||
|
;RtlInitializeCriticalSection
|
||||||
|
;RtlInitializeGenericTable
|
||||||
|
;RtlInitializeHandleTable
|
||||||
|
;RtlInitializeRXact
|
||||||
|
;RtlInitializeResource
|
||||||
|
;RtlInitializeSid
|
||||||
|
;RtlInsertElementGenericTable
|
||||||
|
RtlIntegerToChar@16
|
||||||
|
RtlIntegerToUnicodeString@12
|
||||||
|
RtlIsDosDeviceName_U@4
|
||||||
|
;RtlIsGenericTableEmpty
|
||||||
|
RtlIsNameLegalDOS8Dot3@12
|
||||||
|
;RtlIsTextUnicode
|
||||||
|
;RtlIsValidHandle
|
||||||
|
;RtlIsValidIndexHandle
|
||||||
|
RtlLargeIntegerAdd@16
|
||||||
|
RtlLargeIntegerArithmeticShift@12
|
||||||
|
RtlLargeIntegerDivide@20
|
||||||
|
RtlLargeIntegerNegate@8
|
||||||
|
RtlLargeIntegerShiftLeft@12
|
||||||
|
RtlLargeIntegerShiftRight@12
|
||||||
|
RtlLargeIntegerSubtract@16
|
||||||
|
;RtlLargeIntegerToChar
|
||||||
|
;RtlLeaveCriticalSection
|
||||||
|
;RtlLengthRequiredSid
|
||||||
|
RtlLengthSecurityDescriptor@4
|
||||||
|
;RtlLengthSid
|
||||||
|
;RtlLocalTimeToSystemTime
|
||||||
|
RtlLockHeap@4
|
||||||
|
;RtlLookupAtomInAtomTable
|
||||||
|
;RtlLookupElementGenericTable
|
||||||
|
;RtlMakeSelfRelativeSD
|
||||||
|
;RtlMapGenericMask
|
||||||
|
RtlMoveMemory@12
|
||||||
|
RtlMultiByteToUnicodeN@20
|
||||||
|
RtlMultiByteToUnicodeSize@12
|
||||||
|
;RtlNewInstanceSecurityObject
|
||||||
|
;RtlNewSecurityGrantedAccess
|
||||||
|
;RtlNewSecurityObject
|
||||||
|
RtlNormalizeProcessParams@4
|
||||||
|
RtlNtStatusToDosError@4
|
||||||
|
RtlNtStatusToPsxErrno@4
|
||||||
|
;RtlNumberGenericTableElements
|
||||||
|
RtlNumberOfClearBits@4
|
||||||
|
RtlNumberOfSetBits@4
|
||||||
|
RtlOemStringToUnicodeSize@4
|
||||||
|
RtlOemStringToUnicodeString@12
|
||||||
|
RtlOemToUnicodeN@20
|
||||||
|
;RtlOpenCurrentUser
|
||||||
|
;RtlPcToFileHeader
|
||||||
|
;RtlPinAtomInAtomTable
|
||||||
|
;RtlPrefixString
|
||||||
|
;RtlPrefixUnicodeString
|
||||||
|
;RtlPropertySetNameToGuid
|
||||||
|
;RtlProtectHeap
|
||||||
|
;RtlQueryAtomInAtomTable
|
||||||
|
RtlQueryEnvironmentVariable_U@12
|
||||||
|
;RtlQueryInformationAcl
|
||||||
|
;RtlQueryProcessBackTraceInformation
|
||||||
|
;RtlQueryProcessDebugInformation
|
||||||
|
;RtlQueryProcessHeapInformation
|
||||||
|
;RtlQueryProcessLockInformation
|
||||||
|
;RtlQueryProperties
|
||||||
|
;RtlQueryPropertyNames
|
||||||
|
;RtlQueryPropertySet
|
||||||
|
;RtlQueryRegistryValues
|
||||||
|
;RtlQuerySecutityObject
|
||||||
|
;RtlQueryTagHeap
|
||||||
|
;RtlQueryTimeZoneInformation
|
||||||
|
;RtlRaiseException
|
||||||
|
;RtlRaiseStatus
|
||||||
|
;RtlRandom
|
||||||
|
RtlReAllocateHeap@16
|
||||||
|
;RtlRealPredecessor
|
||||||
|
;RtlRealSuccessor
|
||||||
|
RtlReleasePebLock@0
|
||||||
|
;RtlReleaseResource
|
||||||
|
;RtlRemoteCall
|
||||||
|
;RtlResetRtlTranslations
|
||||||
|
;RtlRunDecodeUnicodeString
|
||||||
|
;RtlRunEncodeUnicodeString
|
||||||
|
;RtlSecondsSince1970ToTime
|
||||||
|
;RtlSecondsSince1980ToTime
|
||||||
|
;RtlSelfRelatedToAbsoluteSD
|
||||||
|
RtlSetAllBits@4
|
||||||
|
;RtlSetAttributesSecurityDescriptor
|
||||||
|
RtlSetBits@12
|
||||||
|
RtlSetCurrentDirectory_U@4
|
||||||
|
RtlSetCurrentEnvironment@8
|
||||||
|
RtlSetDaclSecurityDescriptor@16
|
||||||
|
RtlSetEnvironmentVariable@12
|
||||||
|
RtlSetGroupSecurityDescriptor@12
|
||||||
|
;RtlSetInformationAcl
|
||||||
|
RtlSetOwnerSecurityDescriptor@12
|
||||||
|
;RtlSetProperties
|
||||||
|
;RtlSetPropertyNames
|
||||||
|
;RtlSetPropertySetClassId
|
||||||
|
;RtlSetSaclSecurityDescriptor
|
||||||
|
;RtlSetSecurityObject
|
||||||
|
;RtlSetTimeZoneInformation
|
||||||
|
;RtlSetUnicodeCallouts
|
||||||
|
;RtlSetUserFlagsHeap
|
||||||
|
;RtlSetUserValueHeap
|
||||||
|
RtlSizeHeap@12
|
||||||
|
;RtlSplay
|
||||||
|
;RtlStartRXact
|
||||||
|
;RtlSubAuthorityCountSid
|
||||||
|
;RtlSubAuthoritySid
|
||||||
|
;RtlSubtreePredecessor
|
||||||
|
;RtlSubtreeSuccessor
|
||||||
|
;RtlSystemTimeToLocalTime
|
||||||
|
;RtlTimeFieldsToTime
|
||||||
|
;RtlTimeToElapsedTimeFields
|
||||||
|
;RtlTimeToSecondsSince1970
|
||||||
|
;RtlTimeToSecondsSince1980
|
||||||
|
;RtlTimeToTimeFields
|
||||||
|
;RtlTryEnterCriticalSection
|
||||||
|
RtlUnicodeStringToAnsiSize@4
|
||||||
|
RtlUnicodeStringToAnsiString@12
|
||||||
|
RtlUnicodeStringToCountedOemString@12
|
||||||
|
RtlUnicodeStringToInteger@12
|
||||||
|
RtlUnicodeStringToOemSize@4
|
||||||
|
RtlUnicodeStringToOemString@12
|
||||||
|
;RtlUnicodeToCustomCPN
|
||||||
|
RtlUnicodeToMultiByteN@20
|
||||||
|
RtlUnicodeToMultiByteSize@12
|
||||||
|
RtlUnicodeToOemN@20
|
||||||
|
;RtlUniform
|
||||||
|
RtlUnlockHeap@4
|
||||||
|
RtlUnwind@0
|
||||||
|
RtlUpcaseUnicodeChar@4
|
||||||
|
RtlUpcaseUnicodeString@12
|
||||||
|
RtlUpcaseUnicodeStringToAnsiString@12
|
||||||
|
RtlUpcaseUnicodeStringToCountedOemString@12
|
||||||
|
RtlUpcaseUnicodeStringToOemString@12
|
||||||
|
;RtlUpcaseUnicodeToCustomCPN
|
||||||
|
RtlUpcaseUnicodeToMultiByteN@20
|
||||||
|
RtlUpcaseUnicodeToOemN@20
|
||||||
|
RtlUpperChar@4
|
||||||
|
RtlUpperString@8
|
||||||
|
;RtlUsageHeap
|
||||||
|
;RtlValidAcl
|
||||||
|
RtlValidSecurityDescriptor@4
|
||||||
|
;RtlValidSid
|
||||||
|
RtlValidateHeap@12
|
||||||
|
;RtlValidateProcessHeaps
|
||||||
|
;RtlWalkHeap
|
||||||
|
;RtlWriteRegistryValue
|
||||||
|
;RtlZeroHeap
|
||||||
|
RtlZeroMemory@8
|
||||||
|
;RtlpNtCreateKey
|
||||||
|
;RtlpNtEnumerateSubKey
|
||||||
|
;RtlpNtMakeTemporaryKey
|
||||||
|
;RtlpNtOpenKey
|
||||||
|
;RtlpNtQueryValueKey
|
||||||
|
;RtlpNtSetValueKey
|
||||||
|
;RtlpUnWaitCriticalSection
|
||||||
|
;RtlpWaitForCriticalSection
|
||||||
|
RtlxAnsiStringToUnicodeSize@4
|
||||||
|
RtlxOemStringToUnicodeSize@4
|
||||||
|
RtlxUnicodeStringToAnsiSize@4
|
||||||
|
RtlxUnicodeStringToOemSize@4
|
||||||
ZwAcceptConnectPort@24
|
ZwAcceptConnectPort@24
|
||||||
ZwAccessCheck@32
|
ZwAccessCheck@32
|
||||||
ZwAccessCheckAndAuditAlarm@44
|
ZwAccessCheckAndAuditAlarm@44
|
||||||
|
@ -433,127 +773,6 @@ ZwWriteRequestData@24
|
||||||
ZwWriteVirtualMemory@20
|
ZwWriteVirtualMemory@20
|
||||||
ZwW32Call@20
|
ZwW32Call@20
|
||||||
ZwYieldExecution@0
|
ZwYieldExecution@0
|
||||||
RtlAbsoluteToSelfRelativeSD@12
|
|
||||||
RtlAcquirePebLock@0
|
|
||||||
RtlAllocateHeap@12
|
|
||||||
RtlAnsiCharToUnicodeChar@4
|
|
||||||
RtlAnsiStringToUnicodeSize@4
|
|
||||||
RtlAnsiStringToUnicodeString@12
|
|
||||||
RtlAppendAsciizToString@12
|
|
||||||
RtlAppendStringToString@12
|
|
||||||
RtlAppendUnicodeStringToString@12
|
|
||||||
RtlAppendUnicodeToString@12
|
|
||||||
RtlCharToInteger@12
|
|
||||||
RtlCreateEnvironment@8
|
|
||||||
RtlCreateHeap@24
|
|
||||||
RtlCreateProcessParameters@40
|
|
||||||
RtlCreateSecurityDescriptor@8
|
|
||||||
RtlCreateUnicodeString@8
|
|
||||||
RtlCreateUnicodeStringFromAsciiz@8
|
|
||||||
RtlCreateUserProcess@40
|
|
||||||
RtlCreateUserThread@40
|
|
||||||
RtlCompactHeap@8
|
|
||||||
RtlCompareString@12
|
|
||||||
RtlCompareUnicodeString@12
|
|
||||||
RtlConvertLongToLargeInteger@4
|
|
||||||
RtlConvertUlongToLargeInteger@4
|
|
||||||
;RtlCopyMemory@12
|
|
||||||
;RtlCopyMemory
|
|
||||||
RtlCopyString@8
|
|
||||||
RtlCopyUnicodeString@8
|
|
||||||
RtlDeNormalizeProcessParams@4
|
|
||||||
RtlDestroyEnvironment@4
|
|
||||||
RtlDestroyHeap@4
|
|
||||||
RtlDestroyProcessParameters@4
|
|
||||||
RtlDetermineDosPathNameType_U@4
|
|
||||||
RtlDoesFileExists_U@4
|
|
||||||
RtlDosPathNameToNtPathName_U@16
|
|
||||||
RtlDosSearchPath_U@24
|
|
||||||
RtlDowncaseUnicodeString@12
|
|
||||||
RtlEnlargedIntegerMultiply@8
|
|
||||||
RtlEnlargedUnsignedDivide@16
|
|
||||||
RtlEnlargedUnsignedMultiply@8
|
|
||||||
RtlEqualString@12
|
|
||||||
RtlEqualUnicodeString@12
|
|
||||||
RtlEraseUnicodeString@4
|
|
||||||
RtlExpandEnvironmentStrings_U@16
|
|
||||||
RtlExtendedIntegerMultiply@12
|
|
||||||
RtlExtendedLargeIntegerDivide@16
|
|
||||||
RtlExtendedMagicDivide@20
|
|
||||||
RtlFillMemory@12
|
|
||||||
RtlFreeAnsiString@4
|
|
||||||
RtlFreeHeap@12
|
|
||||||
RtlFreeOemString@4
|
|
||||||
RtlFreeUnicodeString@4
|
|
||||||
RtlGetCurrentDirectory_U@8
|
|
||||||
RtlGetDaclSecurityDescriptor@16
|
|
||||||
RtlGetFullPathName_U@16
|
|
||||||
RtlGetGroupSecurityDescriptor@12
|
|
||||||
RtlGetLongestNtPathLength@0
|
|
||||||
RtlGetOwnerSecurityDescriptor@12
|
|
||||||
RtlGetProcessHeap@0
|
|
||||||
RtlInitAnsiString@8
|
|
||||||
RtlInitString@8
|
|
||||||
RtlInitUnicodeString@8
|
|
||||||
RtlInitializeContext@20
|
|
||||||
RtlIntegerToChar@16
|
|
||||||
RtlIntegerToUnicodeString@12
|
|
||||||
RtlIsDosDeviceName_U@4
|
|
||||||
RtlIsNameLegalDOS8Dot3@12
|
|
||||||
RtlLargeIntegerAdd@16
|
|
||||||
RtlLargeIntegerArithmeticShift@12
|
|
||||||
RtlLargeIntegerDivide@20
|
|
||||||
RtlLargeIntegerNegate@8
|
|
||||||
RtlLargeIntegerShiftLeft@12
|
|
||||||
RtlLargeIntegerShiftRight@12
|
|
||||||
RtlLargeIntegerSubtract@16
|
|
||||||
RtlLengthSecurityDescriptor@4
|
|
||||||
RtlLockHeap@4
|
|
||||||
RtlMoveMemory@12
|
|
||||||
RtlMultiByteToUnicodeN@20
|
|
||||||
RtlNormalizeProcessParams@4
|
|
||||||
RtlNtStatusToDosError@4
|
|
||||||
RtlNtStatusToPsxErrno@4
|
|
||||||
RtlOemStringToUnicodeSize@4
|
|
||||||
RtlOemStringToUnicodeString@12
|
|
||||||
RtlOemToUnicodeN@20
|
|
||||||
RtlQueryEnvironmentVariable_U@12
|
|
||||||
RtlReAllocateHeap@16
|
|
||||||
RtlReleasePebLock@0
|
|
||||||
RtlSetCurrentDirectory_U@4
|
|
||||||
RtlSetCurrentEnvironment@8
|
|
||||||
RtlSetDaclSecurityDescriptor@16
|
|
||||||
RtlSetEnvironmentVariable@12
|
|
||||||
RtlSetGroupSecurityDescriptor@12
|
|
||||||
RtlSetOwnerSecurityDescriptor@12
|
|
||||||
RtlSizeHeap@12
|
|
||||||
RtlUnlockHeap@4
|
|
||||||
RtlUnicodeStringToAnsiSize@4
|
|
||||||
RtlUnicodeStringToAnsiString@12
|
|
||||||
RtlUnicodeStringToCountedOemString@12
|
|
||||||
RtlUnicodeStringToInteger@12
|
|
||||||
RtlUnicodeStringToOemSize@4
|
|
||||||
RtlUnicodeStringToOemString@12
|
|
||||||
RtlUnicodeToMultiByteN@20
|
|
||||||
RtlUnicodeToMultiByteSize@12
|
|
||||||
RtlUnicodeToOemN@20
|
|
||||||
RtlUnwind@0
|
|
||||||
RtlUpcaseUnicodeChar@4
|
|
||||||
RtlUpcaseUnicodeString@12
|
|
||||||
RtlUpcaseUnicodeStringToAnsiString@12
|
|
||||||
RtlUpcaseUnicodeStringToCountedOemString@12
|
|
||||||
RtlUpcaseUnicodeStringToOemString@12
|
|
||||||
RtlUpcaseUnicodeToMultiByteN@20
|
|
||||||
RtlUpcaseUnicodeToOemN@20
|
|
||||||
RtlUpperChar@4
|
|
||||||
RtlUpperString@8
|
|
||||||
RtlValidSecurityDescriptor@4
|
|
||||||
RtlValidateHeap@12
|
|
||||||
RtlZeroMemory@8
|
|
||||||
RtlxAnsiStringToUnicodeSize@4
|
|
||||||
RtlxOemStringToUnicodeSize@4
|
|
||||||
RtlxUnicodeStringToAnsiSize@4
|
|
||||||
RtlxUnicodeStringToOemSize@4
|
|
||||||
__isascii
|
__isascii
|
||||||
__iscsym
|
__iscsym
|
||||||
__iscsymf
|
__iscsymf
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $Id: ntdll.edf,v 1.32 2000/03/03 00:40:29 ekohl Exp $
|
; $Id: ntdll.edf,v 1.33 2000/03/09 00:13:37 ekohl Exp $
|
||||||
;
|
;
|
||||||
; ReactOS Operating System
|
; ReactOS Operating System
|
||||||
;
|
;
|
||||||
|
@ -223,6 +223,141 @@ NtWriteRequestData=NtWriteRequestData@24
|
||||||
NtWriteVirtualMemory=NtWriteVirtualMemory@20
|
NtWriteVirtualMemory=NtWriteVirtualMemory@20
|
||||||
NtW32Call=NtW32Call@20
|
NtW32Call=NtW32Call@20
|
||||||
NtYieldExecution=NtYieldExecution@0
|
NtYieldExecution=NtYieldExecution@0
|
||||||
|
RtlAbsoluteToSelfRelativeSD=RtlAbsoluteToSelfRelativeSD@12
|
||||||
|
RtlAcquirePebLock=RtlAcquirePebLock@0
|
||||||
|
RtlAllocateHeap=RtlAllocateHeap@12
|
||||||
|
RtlAnsiCharToUnicodeChar=RtlAnsiCharToUnicodeChar@4
|
||||||
|
RtlAnsiStringToUnicodeSize=RtlAnsiStringToUnicodeSize@4
|
||||||
|
RtlAnsiStringToUnicodeString=RtlAnsiStringToUnicodeString@12
|
||||||
|
RtlAppendUnicodeStringToString=RtlAppendUnicodeStringToString@8
|
||||||
|
RtlAppendUnicodeToString=RtlAppendUnicodeToString@8
|
||||||
|
RtlAreBitsClear=RtlAreBitsClear@12
|
||||||
|
RtlAreBitsSet=RtlAreBitsSet@12
|
||||||
|
RtlCharToInteger=RtlCharToInteger@12
|
||||||
|
RtlClearAllBits=RtlClearAllBits@4
|
||||||
|
RtlClearBits=RtlClearBits@12
|
||||||
|
RtlCompactHeap=RtlCompactHeap@8
|
||||||
|
RtlCompareMemory=RtlCompareMemory@12
|
||||||
|
RtlCompareMemoryUlong=RtlCompareMemoryUlong@12
|
||||||
|
RtlCompareString=RtlCompareString@12
|
||||||
|
RtlCompareUnicodeString=RtlCompareUnicodeString@12
|
||||||
|
RtlConvertLongToLargeInteger=RtlConvertLongToLargeInteger@4
|
||||||
|
RtlConvertUlongToLargeInteger=RtlConvertUlongToLargeInteger@4
|
||||||
|
RtlCopyString=RtlCopyString@8
|
||||||
|
RtlCopyUnicodeString=RtlCopyUnicodeString@8
|
||||||
|
RtlCreateEnvironment=RtlCreateEnvironment@8
|
||||||
|
RtlCreateHeap=RtlCreateHeap@24
|
||||||
|
RtlCreateProcessParameters=RtlCreateProcessParameters@40
|
||||||
|
RtlCreateSecurityDescriptor=RtlCreateSecurityDescriptor@8
|
||||||
|
RtlCreateUnicodeString=RtlCreateUnicodeString@8
|
||||||
|
RtlCreateUnicodeStringFromAsciiz=RtlCreateUnicodeStringFromAsciiz@8
|
||||||
|
RtlCreateUserProcess=RtlCreateUserProcess@40
|
||||||
|
RtlCreateUserThread=RtlCreateUserThread@40
|
||||||
|
RtlDeNormalizeProcessParams=RtlDeNormalizeProcessParams@4
|
||||||
|
RtlDestroyEnvironment=RtlDestroyEnvironment@4
|
||||||
|
RtlDestroyHeap=RtlDestroyHeap@4
|
||||||
|
RtlDestroyProcessParameters=RtlDestroyProcessParameters@4
|
||||||
|
RtlDetermineDosPathNameType_U=RtlDetermineDosPathNameType_U@4
|
||||||
|
RtlDoesFileExists_U=RtlDoesFileExists_U@4
|
||||||
|
RtlDosPathNameToNtPathName_U=RtlDosPathNameToNtPathName_U@16
|
||||||
|
RtlDosSearchPath_U=RtlDosSearchPath_U@24
|
||||||
|
RtlDowncaseUnicodeString=RtlDowncaseUnicodeString@12
|
||||||
|
RtlEnlargedIntegerMultiply=RtlEnlargedIntegerMultiply@8
|
||||||
|
RtlEnlargedUnsignedDivide=RtlEnlargedUnsignedDivide@16
|
||||||
|
RtlEnlargedUnsignedMultiply=RtlEnlargedUnsignedMultiply@8
|
||||||
|
RtlEqualString=RtlEqualString@12
|
||||||
|
RtlEqualUnicodeString=RtlEqualUnicodeString@12
|
||||||
|
RtlEraseUnicodeString=RtlEraseUnicodeString@4
|
||||||
|
RtlExpandEnvironmentStrings_U=RtlExpandEnvironmentStrings_U@16
|
||||||
|
RtlExtendedIntegerMultiply=RtlExtendedIntegerMultiply@12
|
||||||
|
RtlExtendedLargeIntegerDivide=RtlExtendedLargeIntegerDivide@16
|
||||||
|
RtlExtendedMagicDivide=RtlExtendedMagicDivide@20
|
||||||
|
RtlFillMemory=RtlFillMemory@12
|
||||||
|
RtlFillMemoryUlong=RtlFillMemoryUlong@12
|
||||||
|
RtlFindClearBits=RtlFindClearBits@12
|
||||||
|
RtlFindClearBitsAndSet=RtlFindClearBitsAndSet@12
|
||||||
|
RtlFindLongestRunClear=RtlFindLongestRunClear@8
|
||||||
|
RtlFindLongestRunSet=RtlFindLongestRunSet@8
|
||||||
|
RtlFindSetBits=RtlFindSetBits@12
|
||||||
|
RtlFindSetBitsAndClear=RtlFindSetBitsAndClear@12
|
||||||
|
RtlFreeAnsiString=RtlFreeAnsiString@4
|
||||||
|
RtlFreeHeap=RtlFreeHeap@12
|
||||||
|
RtlFreeUnicodeString=RtlFreeUnicodeString@4
|
||||||
|
RtlGetCurrentDirectory_U=RtlGetCurrentDirectory_U@8
|
||||||
|
RtlGetDaclSecurityDescriptor=RtlGetDaclSecurityDescriptor@16
|
||||||
|
RtlGetFullPathName_U=RtlGetFullPathName_U@16
|
||||||
|
RtlGetGroupSecurityDescriptor=RtlGetGroupSecurityDescriptor@12
|
||||||
|
RtlGetLongestNtPathLength=RtlGetLongestNtPathLength@0
|
||||||
|
RtlGetOwnerSecurityDescriptor=RtlGetOwnerSecurityDescriptor@12
|
||||||
|
RtlGetProcessHeap=RtlGetProcessHeap@0
|
||||||
|
RtlInitAnsiString=RtlInitAnsiString@8
|
||||||
|
RtlInitString=RtlInitString@8
|
||||||
|
RtlInitUnicodeString=RtlInitUnicodeString@8
|
||||||
|
RtlInitializeBitMap=RtlInitializeBitMap@12
|
||||||
|
RtlInitializeContext=RtlInitializeContext@20
|
||||||
|
RtlIntegerToChar=RtlIntegerToChar@16
|
||||||
|
RtlIntegerToUnicodeString=RtlIntegerToUnicodeString@12
|
||||||
|
RtlIsDosDeviceName_U=RtlIsDosDeviceName_U@4
|
||||||
|
RtlIsNameLegalDOS8Dot3=RtlIsNameLegalDOS8Dot3@12
|
||||||
|
RtlLargeIntegerAdd=RtlLargeIntegerAdd@16
|
||||||
|
RtlLargeIntegerArithmeticShift=RtlLargeIntegerArithmeticShift@12
|
||||||
|
RtlLargeIntegerDivide=RtlLargeIntegerDivide@20
|
||||||
|
RtlLargeIntegerNegate=RtlLargeIntegerNegate@8
|
||||||
|
RtlLargeIntegerShiftLeft=RtlLargeIntegerShiftLeft@12
|
||||||
|
RtlLargeIntegerShiftRight=RtlLargeIntegerShiftRight@12
|
||||||
|
RtlLargeIntegerSubtract=RtlLargeIntegerSubtract@16
|
||||||
|
RtlLengthSecurityDescriptor=RtlLengthSecurityDescriptor@4
|
||||||
|
RtlLockHeap=RtlLockHeap@4
|
||||||
|
RtlMoveMemory=RtlMoveMemory@12
|
||||||
|
RtlMultiByteToUnicodeN=RtlMultiByteToUnicodeN@20
|
||||||
|
RtlMultiByteToUnicodeSize=RtlMultiByteToUnicodeSize@12
|
||||||
|
RtlNormalizeProcessParams=RtlNormalizeProcessParams@4
|
||||||
|
RtlNtStatusToDosError=RtlNtStatusToDosError@4
|
||||||
|
RtlNtStatusToPsxErrno=RtlNtStatusToPsxErrno@4
|
||||||
|
RtlNumberOfClearBits=RtlNumberOfClearBits@4
|
||||||
|
RtlNumberOfSetBits=RtlNumberOfSetBits@4
|
||||||
|
RtlOemStringToUnicodeSize=RtlOemStringToUnicodeSize@4
|
||||||
|
RtlOemStringToUnicodeString=RtlOemStringToUnicodeString@12
|
||||||
|
RtlOemToUnicodeN=RtlOemToUnicodeN@20
|
||||||
|
RtlQueryEnvironmentVariable_U=RtlQueryEnvironmentVariable_U@12
|
||||||
|
RtlReAllocateHeap=RtlReAllocateHeap@16
|
||||||
|
RtlReleasePebLock=RtlReleasePebLock@0
|
||||||
|
RtlSetAllBits=RtlSetAllBits@4
|
||||||
|
RtlSetBits=RtlSetBits@12
|
||||||
|
RtlSetCurrentDirectory_U=RtlSetCurrentDirectory_U@4
|
||||||
|
RtlSetCurrentEnvironment=RtlSetCurrentEnvironment@8
|
||||||
|
RtlSetDaclSecurityDescriptor=RtlSetDaclSecurityDescriptor@16
|
||||||
|
RtlSetEnvironmentVariable=RtlSetEnvironmentVariable@12
|
||||||
|
RtlSetGroupSecurityDescriptor=RtlSetGroupSecurityDescriptor@12
|
||||||
|
RtlSetOwnerSecurityDescriptor=RtlSetOwnerSecurityDescriptor@12
|
||||||
|
RtlSizeHeap=RtlSizeHeap@12
|
||||||
|
RtlUnicodeStringToAnsiSize=RtlUnicodeStringToAnsiSize@4
|
||||||
|
RtlUnicodeStringToAnsiString=RtlUnicodeStringToAnsiString@12
|
||||||
|
RtlUnicodeStringToCountedOemString=RtlUnicodeStringToCountedOemString@12
|
||||||
|
RtlUnicodeStringToInteger=RtlUnicodeStringToInteger@12
|
||||||
|
RtlUnicodeStringToOemSize=RtlUnicodeStringToOemSize@4
|
||||||
|
RtlUnicodeStringToOemString=RtlUnicodeStringToOemString@12
|
||||||
|
RtlUnicodeToMultiByteN=RtlUnicodeToMultiByteN@20
|
||||||
|
RtlUnicodeToMultiByteSize=RtlUnicodeToMultiByteSize@12
|
||||||
|
RtlUnicodeToOemN=RtlUnicodeToOemN@20
|
||||||
|
RtlUnlockHeap=RtlUnlockHeap@4
|
||||||
|
RtlUnwind=RtlUnwind@0
|
||||||
|
RtlUpcaseUnicodeChar=RtlUpcaseUnicodeChar@4
|
||||||
|
RtlUpcaseUnicodeString=RtlUpcaseUnicodeString@12
|
||||||
|
RtlUpcaseUnicodeStringToAnsiString=RtlUpcaseUnicodeStringToAnsiString@12
|
||||||
|
RtlUpcaseUnicodeStringToCountedOemString=RtlUpcaseUnicodeStringToCountedOemString@12
|
||||||
|
RtlUpcaseUnicodeStringToOemString=RtlUpcaseUnicodeStringToOemString@12
|
||||||
|
RtlUpcaseUnicodeToMultiByteN=RtlUpcaseUnicodeToMultiByteN@20
|
||||||
|
RtlUpcaseUnicodeToOemN=RtlUpcaseUnicodeToOemN@20
|
||||||
|
RtlUpperChar=RtlUpperChar@4
|
||||||
|
RtlUpperString=RtlUpperString@8
|
||||||
|
RtlValidSecurityDescriptor=RtlValidSecurityDescriptor@4
|
||||||
|
RtlValidateHeap=RtlValidateHeap@12
|
||||||
|
RtlZeroMemory=RtlZeroMemory@8
|
||||||
|
RtlxAnsiStringToUnicodeSize=RtlxAnsiStringToUnicodeSize@4
|
||||||
|
RtlxOemStringToUnicodeSize=RtlxOemStringToUnicodeSize@4
|
||||||
|
RtlxUnicodeStringToAnsiSize=RtlxUnicodeStringToAnsiSize@4
|
||||||
|
RtlxUnicodeStringToOemSize=RtlxUnicodeStringToOemSize@4
|
||||||
ZwAcceptConnectPort=ZwAcceptConnectPort@24
|
ZwAcceptConnectPort=ZwAcceptConnectPort@24
|
||||||
ZwAccessCheck=ZwAccessCheck@32
|
ZwAccessCheck=ZwAccessCheck@32
|
||||||
ZwAccessCheckAndAuditAlarm=ZwAccessCheckAndAuditAlarm@44
|
ZwAccessCheckAndAuditAlarm=ZwAccessCheckAndAuditAlarm@44
|
||||||
|
@ -433,122 +568,6 @@ ZwWriteRequestData=ZwWriteRequestData@24
|
||||||
ZwWriteVirtualMemory=ZwWriteVirtualMemory@20
|
ZwWriteVirtualMemory=ZwWriteVirtualMemory@20
|
||||||
ZwW32Call=ZwW32Call@20
|
ZwW32Call=ZwW32Call@20
|
||||||
ZwYieldExecution=ZwYieldExecution@0
|
ZwYieldExecution=ZwYieldExecution@0
|
||||||
RtlAbsoluteToSelfRelativeSD=RtlAbsoluteToSelfRelativeSD@12
|
|
||||||
RtlAcquirePebLock=RtlAcquirePebLock@0
|
|
||||||
RtlAllocateHeap=RtlAllocateHeap@12
|
|
||||||
RtlAnsiCharToUnicodeChar=RtlAnsiCharToUnicodeChar@4
|
|
||||||
RtlAnsiStringToUnicodeSize=RtlAnsiStringToUnicodeSize@4
|
|
||||||
RtlAnsiStringToUnicodeString=RtlAnsiStringToUnicodeString@12
|
|
||||||
RtlAppendUnicodeStringToString=RtlAppendUnicodeStringToString@8
|
|
||||||
RtlAppendUnicodeToString=RtlAppendUnicodeToString@8
|
|
||||||
RtlCharToInteger=RtlCharToInteger@12
|
|
||||||
RtlCreateEnvironment=RtlCreateEnvironment@8
|
|
||||||
RtlCreateHeap=RtlCreateHeap@24
|
|
||||||
RtlCreateProcessParameters=RtlCreateProcessParameters@40
|
|
||||||
RtlCreateSecurityDescriptor=RtlCreateSecurityDescriptor@8
|
|
||||||
RtlCreateUnicodeString=RtlCreateUnicodeString@8
|
|
||||||
RtlCreateUnicodeStringFromAsciiz=RtlCreateUnicodeStringFromAsciiz@8
|
|
||||||
RtlCreateUserProcess=RtlCreateUserProcess@40
|
|
||||||
RtlCreateUserThread=RtlCreateUserThread@40
|
|
||||||
RtlCompactHeap=RtlCompactHeap@8
|
|
||||||
RtlCompareString=RtlCompareString@12
|
|
||||||
RtlCompareUnicodeString=RtlCompareUnicodeString@12
|
|
||||||
RtlConvertLongToLargeInteger=RtlConvertLongToLargeInteger@4
|
|
||||||
RtlConvertUlongToLargeInteger=RtlConvertUlongToLargeInteger@4
|
|
||||||
RtlCopyString=RtlCopyString@8
|
|
||||||
RtlCopyUnicodeString=RtlCopyUnicodeString@8
|
|
||||||
RtlDeNormalizeProcessParams=RtlDeNormalizeProcessParams@4
|
|
||||||
RtlDestroyEnvironment=RtlDestroyEnvironment@4
|
|
||||||
RtlDestroyHeap=RtlDestroyHeap@4
|
|
||||||
RtlDestroyProcessParameters=RtlDestroyProcessParameters@4
|
|
||||||
RtlDetermineDosPathNameType_U=RtlDetermineDosPathNameType_U@4
|
|
||||||
RtlDoesFileExists_U=RtlDoesFileExists_U@4
|
|
||||||
RtlDosPathNameToNtPathName_U=RtlDosPathNameToNtPathName_U@16
|
|
||||||
RtlDosSearchPath_U=RtlDosSearchPath_U@24
|
|
||||||
RtlDowncaseUnicodeString=RtlDowncaseUnicodeString@12
|
|
||||||
RtlEnlargedIntegerMultiply=RtlEnlargedIntegerMultiply@8
|
|
||||||
RtlEnlargedUnsignedDivide=RtlEnlargedUnsignedDivide@16
|
|
||||||
RtlEnlargedUnsignedMultiply=RtlEnlargedUnsignedMultiply@8
|
|
||||||
RtlEqualString=RtlEqualString@12
|
|
||||||
RtlEqualUnicodeString=RtlEqualUnicodeString@12
|
|
||||||
RtlEraseUnicodeString=RtlEraseUnicodeString@4
|
|
||||||
RtlExpandEnvironmentStrings_U=RtlExpandEnvironmentStrings_U@16
|
|
||||||
RtlExtendedIntegerMultiply=RtlExtendedIntegerMultiply@12
|
|
||||||
RtlExtendedLargeIntegerDivide=RtlExtendedLargeIntegerDivide@16
|
|
||||||
RtlExtendedMagicDivide=RtlExtendedMagicDivide@20
|
|
||||||
RtlFillMemory=RtlFillMemory@12
|
|
||||||
RtlFreeAnsiString=RtlFreeAnsiString@4
|
|
||||||
RtlFreeHeap=RtlFreeHeap@12
|
|
||||||
RtlFreeUnicodeString=RtlFreeUnicodeString@4
|
|
||||||
RtlGetCurrentDirectory_U=RtlGetCurrentDirectory_U@8
|
|
||||||
RtlGetDaclSecurityDescriptor=RtlGetDaclSecurityDescriptor@16
|
|
||||||
RtlGetFullPathName_U=RtlGetFullPathName_U@16
|
|
||||||
RtlGetGroupSecurityDescriptor=RtlGetGroupSecurityDescriptor@12
|
|
||||||
RtlGetLongestNtPathLength=RtlGetLongestNtPathLength@0
|
|
||||||
RtlGetOwnerSecurityDescriptor=RtlGetOwnerSecurityDescriptor@12
|
|
||||||
RtlGetProcessHeap=RtlGetProcessHeap@0
|
|
||||||
RtlInitAnsiString=RtlInitAnsiString@8
|
|
||||||
RtlInitString=RtlInitString@8
|
|
||||||
RtlInitUnicodeString=RtlInitUnicodeString@8
|
|
||||||
RtlInitializeContext=RtlInitializeContext@20
|
|
||||||
RtlIntegerToChar=RtlIntegerToChar@16
|
|
||||||
RtlIntegerToUnicodeString=RtlIntegerToUnicodeString@12
|
|
||||||
RtlIsDosDeviceName_U=RtlIsDosDeviceName_U@4
|
|
||||||
RtlIsNameLegalDOS8Dot3=RtlIsNameLegalDOS8Dot3@12
|
|
||||||
RtlLargeIntegerAdd=RtlLargeIntegerAdd@16
|
|
||||||
RtlLargeIntegerArithmeticShift=RtlLargeIntegerArithmeticShift@12
|
|
||||||
RtlLargeIntegerDivide=RtlLargeIntegerDivide@20
|
|
||||||
RtlLargeIntegerNegate=RtlLargeIntegerNegate@8
|
|
||||||
RtlLargeIntegerShiftLeft=RtlLargeIntegerShiftLeft@12
|
|
||||||
RtlLargeIntegerShiftRight=RtlLargeIntegerShiftRight@12
|
|
||||||
RtlLargeIntegerSubtract=RtlLargeIntegerSubtract@16
|
|
||||||
RtlLengthSecurityDescriptor=RtlLengthSecurityDescriptor@4
|
|
||||||
RtlLockHeap=RtlLockHeap@4
|
|
||||||
RtlMoveMemory=RtlMoveMemory@12
|
|
||||||
RtlMultiByteToUnicodeN=RtlMultiByteToUnicodeN@20
|
|
||||||
RtlNormalizeProcessParams=RtlNormalizeProcessParams@4
|
|
||||||
RtlNtStatusToDosError=RtlNtStatusToDosError@4
|
|
||||||
RtlNtStatusToPsxErrno=RtlNtStatusToPsxErrno@4
|
|
||||||
RtlOemStringToUnicodeSize=RtlOemStringToUnicodeSize@4
|
|
||||||
RtlOemStringToUnicodeString=RtlOemStringToUnicodeString@12
|
|
||||||
RtlOemToUnicodeN=RtlOemToUnicodeN@20
|
|
||||||
RtlQueryEnvironmentVariable_U=RtlQueryEnvironmentVariable_U@12
|
|
||||||
RtlReAllocateHeap=RtlReAllocateHeap@16
|
|
||||||
RtlReleasePebLock=RtlReleasePebLock@0
|
|
||||||
RtlSetCurrentDirectory_U=RtlSetCurrentDirectory_U@4
|
|
||||||
RtlSetCurrentEnvironment=RtlSetCurrentEnvironment@8
|
|
||||||
RtlSetDaclSecurityDescriptor=RtlSetDaclSecurityDescriptor@16
|
|
||||||
RtlSetEnvironmentVariable=RtlSetEnvironmentVariable@12
|
|
||||||
RtlSetGroupSecurityDescriptor=RtlSetGroupSecurityDescriptor@12
|
|
||||||
RtlSetOwnerSecurityDescriptor=RtlSetOwnerSecurityDescriptor@12
|
|
||||||
RtlSizeHeap=RtlSizeHeap@12
|
|
||||||
RtlUnlockHeap=RtlUnlockHeap@4
|
|
||||||
RtlUnicodeStringToAnsiSize=RtlUnicodeStringToAnsiSize@4
|
|
||||||
RtlUnicodeStringToAnsiString=RtlUnicodeStringToAnsiString@12
|
|
||||||
RtlUnicodeStringToCountedOemString=RtlUnicodeStringToCountedOemString@12
|
|
||||||
RtlUnicodeStringToInteger=RtlUnicodeStringToInteger@12
|
|
||||||
RtlUnicodeStringToOemSize=RtlUnicodeStringToOemSize@4
|
|
||||||
RtlUnicodeStringToOemString=RtlUnicodeStringToOemString@12
|
|
||||||
RtlUnicodeToMultiByteN=RtlUnicodeToMultiByteN@20
|
|
||||||
RtlUnicodeToMultiByteSize=RtlUnicodeToMultiByteSize@12
|
|
||||||
RtlUnicodeToOemN=RtlUnicodeToOemN@20
|
|
||||||
RtlUnwind=RtlUnwind@0
|
|
||||||
RtlUpcaseUnicodeChar=RtlUpcaseUnicodeChar@4
|
|
||||||
RtlUpcaseUnicodeString=RtlUpcaseUnicodeString@12
|
|
||||||
RtlUpcaseUnicodeStringToAnsiString=RtlUpcaseUnicodeStringToAnsiString@12
|
|
||||||
RtlUpcaseUnicodeStringToCountedOemString=RtlUpcaseUnicodeStringToCountedOemString@12
|
|
||||||
RtlUpcaseUnicodeStringToOemString=RtlUpcaseUnicodeStringToOemString@12
|
|
||||||
RtlUpcaseUnicodeToMultiByteN=RtlUpcaseUnicodeToMultiByteN@20
|
|
||||||
RtlUpcaseUnicodeToOemN=RtlUpcaseUnicodeToOemN@20
|
|
||||||
RtlUpperChar=RtlUpperChar@4
|
|
||||||
RtlUpperString=RtlUpperString@8
|
|
||||||
RtlValidSecurityDescriptor=RtlValidSecurityDescriptor@4
|
|
||||||
RtlValidateHeap=RtlValidateHeap@12
|
|
||||||
RtlZeroMemory=RtlZeroMemory@8
|
|
||||||
RtlxAnsiStringToUnicodeSize=RtlxAnsiStringToUnicodeSize@4
|
|
||||||
RtlxOemStringToUnicodeSize=RtlxOemStringToUnicodeSize@4
|
|
||||||
RtlxUnicodeStringToAnsiSize=RtlxUnicodeStringToAnsiSize@4
|
|
||||||
RtlxUnicodeStringToOemSize=RtlxUnicodeStringToOemSize@4
|
|
||||||
__isascii
|
__isascii
|
||||||
__iscsym
|
__iscsym
|
||||||
__iscsymf
|
__iscsymf
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id: makefile,v 1.38 2000/02/13 16:05:13 dwelch Exp $
|
# $Id: makefile,v 1.39 2000/03/09 00:13:14 ekohl Exp $
|
||||||
#
|
#
|
||||||
# ReactOS Operating System
|
# ReactOS Operating System
|
||||||
#
|
#
|
||||||
|
@ -29,7 +29,8 @@ DBG_OBJECTS = dbg/brkpoint.o dbg/print.o
|
||||||
|
|
||||||
RTL_OBJECTS = rtl/critical.o rtl/error.o rtl/heap.o rtl/largeint.o \
|
RTL_OBJECTS = rtl/critical.o rtl/error.o rtl/heap.o rtl/largeint.o \
|
||||||
rtl/math.o rtl/mem.o rtl/nls.o rtl/process.o rtl/sd.o \
|
rtl/math.o rtl/mem.o rtl/nls.o rtl/process.o rtl/sd.o \
|
||||||
rtl/thread.o rtl/unicode.o rtl/env.o rtl/path.o rtl/ppb.o
|
rtl/thread.o rtl/unicode.o rtl/env.o rtl/path.o rtl/ppb.o \
|
||||||
|
rtl/bitmap.o
|
||||||
|
|
||||||
STDIO_OBJECTS = stdio/sprintf.o stdio/swprintf.o
|
STDIO_OBJECTS = stdio/sprintf.o stdio/swprintf.o
|
||||||
|
|
||||||
|
|
649
reactos/lib/ntdll/rtl/bitmap.c
Normal file
649
reactos/lib/ntdll/rtl/bitmap.c
Normal file
|
@ -0,0 +1,649 @@
|
||||||
|
/* $Id: bitmap.c,v 1.1 2000/03/09 00:14:10 ekohl Exp $
|
||||||
|
*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS kernel
|
||||||
|
* FILE: lib/ntdll/rtl/bitmap.c
|
||||||
|
* PURPOSE: Bitmap functions
|
||||||
|
* UPDATE HISTORY:
|
||||||
|
* 20/08/99 Created by Eric Kohl
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define ALIGN(x,align) (((x)+(align)-1) / (align))
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlInitializeBitMap (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
PULONG BitMapBuffer,
|
||||||
|
ULONG SizeOfBitMap
|
||||||
|
)
|
||||||
|
{
|
||||||
|
BitMapHeader->SizeOfBitMap = SizeOfBitMap;
|
||||||
|
BitMapHeader->Buffer = BitMapBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
STDCALL
|
||||||
|
RtlAreBitsClear (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG StartingIndex,
|
||||||
|
ULONG Length
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Shift;
|
||||||
|
ULONG Count;
|
||||||
|
PCHAR Ptr;
|
||||||
|
|
||||||
|
if (StartingIndex >= Size ||
|
||||||
|
!Length ||
|
||||||
|
(StartingIndex + Length > Size))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (StartingIndex / 8);
|
||||||
|
while (Length)
|
||||||
|
{
|
||||||
|
/* get bit shift in current byte */
|
||||||
|
Shift = StartingIndex & 7;
|
||||||
|
|
||||||
|
/* get number of bits to check in current byte */
|
||||||
|
Count = (Length > 8 - Shift) ? 8 - Shift : Length;
|
||||||
|
|
||||||
|
/* check byte */
|
||||||
|
if (*Ptr++ & (~(0xFF << Count) << Shift))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
Length -= Count;
|
||||||
|
StartingIndex += Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
STDCALL
|
||||||
|
RtlAreBitsSet (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG StartingIndex,
|
||||||
|
ULONG Length
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Shift;
|
||||||
|
ULONG Count;
|
||||||
|
PCHAR Ptr;
|
||||||
|
|
||||||
|
if (StartingIndex >= Size ||
|
||||||
|
!Length ||
|
||||||
|
(StartingIndex + Length > Size))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (StartingIndex / 8);
|
||||||
|
while (Length)
|
||||||
|
{
|
||||||
|
/* get bit shift in current byte */
|
||||||
|
Shift = StartingIndex & 7;
|
||||||
|
|
||||||
|
/* get number of bits to check in current byte */
|
||||||
|
Count = (Length > 8 - Shift) ? 8 - Shift : Length;
|
||||||
|
|
||||||
|
/* check byte */
|
||||||
|
if (~*Ptr++ & (~(0xFF << Count) << Shift))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
Length -= Count;
|
||||||
|
StartingIndex += Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlClearAllBits (
|
||||||
|
IN OUT PRTL_BITMAP BitMapHeader
|
||||||
|
)
|
||||||
|
{
|
||||||
|
memset (BitMapHeader->Buffer,
|
||||||
|
0x00,
|
||||||
|
ALIGN(BitMapHeader->SizeOfBitMap, 8));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlClearBits (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG StartingIndex,
|
||||||
|
ULONG NumberToClear
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Count;
|
||||||
|
ULONG Shift;
|
||||||
|
PCHAR Ptr;
|
||||||
|
|
||||||
|
if (StartingIndex >= Size || NumberToClear == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (StartingIndex + NumberToClear > Size)
|
||||||
|
NumberToClear = Size - StartingIndex;
|
||||||
|
|
||||||
|
Ptr = (PCHAR)(BitMapHeader->Buffer + (StartingIndex / 8));
|
||||||
|
while (NumberToClear)
|
||||||
|
{
|
||||||
|
/* bit shift in current byte */
|
||||||
|
Shift = StartingIndex & 7;
|
||||||
|
|
||||||
|
/* number of bits to change in current byte */
|
||||||
|
Count = (NumberToClear > 8 - Shift ) ? 8 - Shift : NumberToClear;
|
||||||
|
|
||||||
|
/* adjust byte */
|
||||||
|
*Ptr++ &= ~(~(0xFF << Count) << Shift);
|
||||||
|
NumberToClear -= Count;
|
||||||
|
StartingIndex += Count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindClearBits (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG NumberToFind,
|
||||||
|
ULONG HintIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Index;
|
||||||
|
ULONG Count;
|
||||||
|
PCHAR Ptr;
|
||||||
|
CHAR Mask;
|
||||||
|
|
||||||
|
if (NumberToFind > Size || NumberToFind == 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (HintIndex >= Size)
|
||||||
|
HintIndex = 0;
|
||||||
|
|
||||||
|
Index = HintIndex;
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (Index / 8);
|
||||||
|
Mask = 1 << (Index & 7);
|
||||||
|
|
||||||
|
while (HintIndex < Size)
|
||||||
|
{
|
||||||
|
/* count clear bits */
|
||||||
|
for (Count = 0; Index < Size && ~*Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
if (++Count >= NumberToFind)
|
||||||
|
return HintIndex;
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* skip set bits */
|
||||||
|
for (; Index < Size && *Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HintIndex = Index;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindClearBitsAndSet (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG NumberToFind,
|
||||||
|
ULONG HintIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Index;
|
||||||
|
|
||||||
|
Index = RtlFindClearBits (BitMapHeader,
|
||||||
|
NumberToFind,
|
||||||
|
HintIndex);
|
||||||
|
if (Index != (ULONG)-1)
|
||||||
|
RtlSetBits (BitMapHeader,
|
||||||
|
Index,
|
||||||
|
NumberToFind);
|
||||||
|
|
||||||
|
return Index;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindFirstRunClear (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
PULONG StartingIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Index;
|
||||||
|
ULONG Count;
|
||||||
|
PCHAR Ptr;
|
||||||
|
CHAR Mask;
|
||||||
|
|
||||||
|
if (*StartingIndex > Size)
|
||||||
|
{
|
||||||
|
*StartingIndex = (ULONG)-1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Index = *StartingIndex;
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (Index / 8);
|
||||||
|
Mask = 1 << (Index & 7);
|
||||||
|
|
||||||
|
/* skip set bits */
|
||||||
|
for (; Index < Size && *Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* return index of first clear bit */
|
||||||
|
if (Index >= Size)
|
||||||
|
{
|
||||||
|
*StartingIndex = (ULONG)-1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*StartingIndex = Index;
|
||||||
|
|
||||||
|
/* count clear bits */
|
||||||
|
for (Count = 0; Index < Size && ~*Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Count++;
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindFirstRunSet (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
PULONG StartingIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Index;
|
||||||
|
ULONG Count;
|
||||||
|
PCHAR Ptr;
|
||||||
|
CHAR Mask;
|
||||||
|
|
||||||
|
if (*StartingIndex > Size)
|
||||||
|
{
|
||||||
|
*StartingIndex = (ULONG)-1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Index = *StartingIndex;
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (Index / 8);
|
||||||
|
Mask = 1 << (Index & 7);
|
||||||
|
|
||||||
|
/* skip clear bits */
|
||||||
|
for (; Index < Size && ~*Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* return index of first set bit */
|
||||||
|
if (Index >= Size)
|
||||||
|
{
|
||||||
|
*StartingIndex = (ULONG)-1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*StartingIndex = Index;
|
||||||
|
|
||||||
|
/* count set bits */
|
||||||
|
for (Count = 0; Index < Size && *Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Count++;
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindLongestRunClear (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
PULONG StartingIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
PCHAR Ptr = (PCHAR)BitMapHeader->Buffer;
|
||||||
|
ULONG Index = 0;
|
||||||
|
ULONG Count;
|
||||||
|
ULONG Max = 0;
|
||||||
|
ULONG Start;
|
||||||
|
ULONG Maxstart = 0;
|
||||||
|
CHAR Mask = 1;
|
||||||
|
|
||||||
|
while (Index < Size)
|
||||||
|
{
|
||||||
|
Start = Index;
|
||||||
|
|
||||||
|
/* count clear bits */
|
||||||
|
for (Count = 0; Index < Size && ~*Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Count++;
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* skip set bits */
|
||||||
|
for (; Index < Size && *Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Count > Max)
|
||||||
|
{
|
||||||
|
Max = Count;
|
||||||
|
Maxstart = Start;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StartingIndex)
|
||||||
|
*StartingIndex = Maxstart;
|
||||||
|
|
||||||
|
return Max;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindLongestRunSet (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
PULONG StartingIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
PCHAR Ptr = (PCHAR)BitMapHeader->Buffer;
|
||||||
|
ULONG Index = 0;
|
||||||
|
ULONG Count;
|
||||||
|
ULONG Max = 0;
|
||||||
|
ULONG Start;
|
||||||
|
ULONG Maxstart = 0;
|
||||||
|
CHAR Mask = 1;
|
||||||
|
|
||||||
|
while (Index < Size)
|
||||||
|
{
|
||||||
|
Start = Index;
|
||||||
|
|
||||||
|
/* count set bits */
|
||||||
|
for (Count = 0; Index < Size && *Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Count++;
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* skip clear bits */
|
||||||
|
for (; Index < Size && ~*Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Count > Max)
|
||||||
|
{
|
||||||
|
Max = Count;
|
||||||
|
Maxstart = Start;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StartingIndex)
|
||||||
|
*StartingIndex = Maxstart;
|
||||||
|
|
||||||
|
return Max;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindSetBits (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG NumberToFind,
|
||||||
|
ULONG HintIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Index;
|
||||||
|
ULONG Count;
|
||||||
|
PCHAR Ptr;
|
||||||
|
CHAR Mask;
|
||||||
|
|
||||||
|
if (NumberToFind > Size || NumberToFind == 0)
|
||||||
|
return (ULONG)-1;
|
||||||
|
|
||||||
|
if (HintIndex >= Size)
|
||||||
|
HintIndex = 0;
|
||||||
|
|
||||||
|
Index = HintIndex;
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (Index / 8);
|
||||||
|
Mask = 1 << (Index & 7);
|
||||||
|
|
||||||
|
while (HintIndex < Size)
|
||||||
|
{
|
||||||
|
/* count set bits */
|
||||||
|
for (Count = 0; Index < Size && *Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
if (++Count >= NumberToFind)
|
||||||
|
return HintIndex;
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* skip clear bits */
|
||||||
|
for (; Index < Size && ~*Ptr & Mask; Index++)
|
||||||
|
{
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HintIndex = Index;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (ULONG)-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlFindSetBitsAndClear (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG NumberToFind,
|
||||||
|
ULONG HintIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Index;
|
||||||
|
|
||||||
|
Index = RtlFindSetBits (BitMapHeader,
|
||||||
|
NumberToFind,
|
||||||
|
HintIndex);
|
||||||
|
if (Index != (ULONG)-1)
|
||||||
|
RtlClearBits (BitMapHeader,
|
||||||
|
Index,
|
||||||
|
NumberToFind);
|
||||||
|
|
||||||
|
return Index;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlNumberOfClearBits (
|
||||||
|
PRTL_BITMAP BitMapHeader
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PCHAR Ptr = (PCHAR)BitMapHeader->Buffer;
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Index;
|
||||||
|
ULONG Count;
|
||||||
|
CHAR Mask;
|
||||||
|
|
||||||
|
for (Mask = 1, Index = 0, Count = 0; Index < Size; Index++)
|
||||||
|
{
|
||||||
|
if (~*Ptr & Mask)
|
||||||
|
Count++;
|
||||||
|
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlNumberOfSetBits (
|
||||||
|
PRTL_BITMAP BitMapHeader
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PCHAR Ptr = (PCHAR)BitMapHeader->Buffer;
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Index;
|
||||||
|
ULONG Count;
|
||||||
|
CHAR Mask;
|
||||||
|
|
||||||
|
for (Mask = 1, Index = 0, Count = 0; Index < Size; Index++)
|
||||||
|
{
|
||||||
|
if (*Ptr & Mask)
|
||||||
|
Count++;
|
||||||
|
|
||||||
|
Mask <<= 1;
|
||||||
|
if (Mask == 0)
|
||||||
|
{
|
||||||
|
Mask = 1;
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlSetAllBits (
|
||||||
|
IN OUT PRTL_BITMAP BitMapHeader
|
||||||
|
)
|
||||||
|
{
|
||||||
|
memset (BitMapHeader->Buffer,
|
||||||
|
0xFF,
|
||||||
|
ALIGN(BitMapHeader->SizeOfBitMap, 8));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlSetBits (
|
||||||
|
PRTL_BITMAP BitMapHeader,
|
||||||
|
ULONG StartingIndex,
|
||||||
|
ULONG NumberToSet
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ULONG Size = BitMapHeader->SizeOfBitMap;
|
||||||
|
ULONG Count;
|
||||||
|
ULONG Shift;
|
||||||
|
PCHAR Ptr;
|
||||||
|
|
||||||
|
if (StartingIndex >= Size || NumberToSet == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (StartingIndex + NumberToSet > Size)
|
||||||
|
NumberToSet = Size - StartingIndex;
|
||||||
|
|
||||||
|
Ptr = (PCHAR)BitMapHeader->Buffer + (StartingIndex / 8);
|
||||||
|
while (NumberToSet)
|
||||||
|
{
|
||||||
|
/* bit shift in current byte */
|
||||||
|
Shift = StartingIndex & 7;
|
||||||
|
|
||||||
|
/* number of bits to change in current byte */
|
||||||
|
Count = (NumberToSet > 8 - Shift) ? 8 - Shift : NumberToSet;
|
||||||
|
|
||||||
|
/* adjust byte */
|
||||||
|
*Ptr++ |= ~(0xFF << Count) << Shift;
|
||||||
|
NumberToSet -= Count;
|
||||||
|
StartingIndex += Count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* EOF */
|
|
@ -1,8 +1,9 @@
|
||||||
/*
|
/* $Id: critical.c,v 1.5 2000/03/09 00:14:10 ekohl Exp $
|
||||||
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
* FILE: lib/kernel32/sync/critical.c
|
* FILE: lib/ntdll/rtl/critical.c
|
||||||
* PURPOSE: Critical regions
|
* PURPOSE: Critical sections
|
||||||
* UPDATE HISTORY:
|
* UPDATE HISTORY:
|
||||||
* Created 30/09/98
|
* Created 30/09/98
|
||||||
*/
|
*/
|
||||||
|
@ -16,16 +17,22 @@
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
VOID RtlDeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlDeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
||||||
{
|
{
|
||||||
lpCriticalSection->Reserved = -1;
|
lpCriticalSection->Reserved = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID RtlEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID RtlInitializeCriticalSection(LPCRITICAL_SECTION pcritical)
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlInitializeCriticalSection(LPCRITICAL_SECTION pcritical)
|
||||||
{
|
{
|
||||||
pcritical->LockCount = -1;
|
pcritical->LockCount = -1;
|
||||||
pcritical->RecursionCount = 0;
|
pcritical->RecursionCount = 0;
|
||||||
|
@ -34,13 +41,18 @@ VOID RtlInitializeCriticalSection(LPCRITICAL_SECTION pcritical)
|
||||||
pcritical->Reserved = 0;
|
pcritical->Reserved = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID RtlLeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlLeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL RtlTryEntryCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
BOOLEAN
|
||||||
|
STDCALL
|
||||||
|
RtlTryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
for(;;);
|
for(;;);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* EOF */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: mem.c,v 1.7 2000/02/21 22:37:36 ekohl Exp $
|
/* $Id: mem.c,v 1.8 2000/03/09 00:14:10 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -44,6 +44,36 @@ RtlCompareMemory(PVOID Source1, PVOID Source2, ULONG Length)
|
||||||
return(total);
|
return(total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
STDCALL
|
||||||
|
RtlCompareMemoryUlong (
|
||||||
|
PVOID Source,
|
||||||
|
ULONG Length,
|
||||||
|
ULONG Value
|
||||||
|
)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Compares a block of ULONGs with an ULONG and returns the number of equal bytes
|
||||||
|
* ARGUMENTS:
|
||||||
|
* Source = Block to compare
|
||||||
|
* Length = Number of bytes to compare
|
||||||
|
* Value = Value to compare
|
||||||
|
* RETURNS: Number of equal bytes
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
PULONG ptr = (PULONG)Source;
|
||||||
|
ULONG len = Length / sizeof(ULONG);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (*ptr != Value)
|
||||||
|
break;
|
||||||
|
ptr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (ULONG)((PCHAR)ptr - (PCHAR)Source);
|
||||||
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
VOID RtlCopyBytes(PVOID Destination,
|
VOID RtlCopyBytes(PVOID Destination,
|
||||||
CONST VOID* Source,
|
CONST VOID* Source,
|
||||||
|
@ -76,6 +106,25 @@ RtlFillMemory (
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
RtlFillMemoryUlong (
|
||||||
|
PVOID Destination,
|
||||||
|
ULONG Length,
|
||||||
|
ULONG Fill
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PULONG Dest = Destination;
|
||||||
|
ULONG Count = Length / sizeof(ULONG);
|
||||||
|
|
||||||
|
while (Count > 0)
|
||||||
|
{
|
||||||
|
*Dest = Fill;
|
||||||
|
Dest++;
|
||||||
|
Count--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
|
|
Loading…
Reference in a new issue