[NDK][XDK]: Add some forgotten RTL bitmap functions.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 29 Mar 2017 16:36:13 +0000 (16:36 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 29 Mar 2017 16:36:13 +0000 (16:36 +0000)
svn path=/trunk/; revision=74242

reactos/sdk/include/ndk/rtlfuncs.h
reactos/sdk/include/xdk/rtlfuncs.h

index e066b03..9f7f5e5 100644 (file)
@@ -3227,6 +3227,14 @@ RtlClearAllBits(
     _In_ PRTL_BITMAP BitMapHeader
 );
 
+NTSYSAPI
+VOID
+NTAPI
+RtlClearBit(
+    _In_ PRTL_BITMAP BitMapHeader,
+    _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber
+);
+
 NTSYSAPI
 VOID
 NTAPI
@@ -3288,6 +3296,14 @@ RtlFindLeastSignificantBit(
     _In_ ULONGLONG Value
 );
 
+NTSYSAPI
+ULONG
+NTAPI
+RtlFindLongestRunClear(
+    _In_ PRTL_BITMAP BitMapHeader,
+    _Out_ PULONG StartingIndex
+);
+
 NTSYSAPI
 CCHAR
 NTAPI
@@ -3391,6 +3407,20 @@ RtlTestBit(
     _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber
 );
 
+#if defined(_M_AMD64)
+_Must_inspect_result_
+FORCEINLINE
+BOOLEAN
+RtlCheckBit(
+  _In_ PRTL_BITMAP BitMapHeader,
+  _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitPosition)
+{
+  return BitTest64((LONG64 CONST*)BitMapHeader->Buffer, (LONG64)BitPosition);
+}
+#else
+#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
+#endif /* defined(_M_AMD64) */
+
 //
 // Timer Functions
 //
index 821a644..b86be14 100644 (file)
@@ -948,6 +948,12 @@ RtlTimeToTimeFields(
   _In_ PLARGE_INTEGER Time,
   _Out_ PTIME_FIELDS TimeFields);
 
+NTSYSAPI
+USHORT
+FASTCALL
+RtlUshortByteSwap(
+  _In_ USHORT Source);
+
 NTSYSAPI
 ULONG
 FASTCALL
@@ -1019,12 +1025,6 @@ NTAPI
 RtlUpcaseUnicodeChar(
   _In_ WCHAR SourceCharacter);
 
-NTSYSAPI
-USHORT
-FASTCALL
-RtlUshortByteSwap(
-  _In_ USHORT Source);
-
 _IRQL_requires_max_(APC_LEVEL)
 _Must_inspect_result_
 NTSYSAPI