[HEADERS]
[reactos.git] / reactos / include / ndk / rtlfuncs.h
index 612437a..debd1ee 100644 (file)
@@ -77,8 +77,8 @@ InsertTailList(
     ListHead->Blink = Entry;
 }
 
-BOOLEAN
 FORCEINLINE
+BOOLEAN
 IsListEmpty(
     IN const LIST_ENTRY * ListHead
 )
@@ -195,14 +195,14 @@ RtlConvertUlongToLuid(ULONG Ulong)
 #if DBG
 
 #define ASSERT( exp ) \
-    ((!(exp)) ? \
+    ((void)((!(exp)) ? \
         (RtlAssert( #exp, __FILE__, __LINE__, NULL ),FALSE) : \
-        TRUE)
+        TRUE))
 
 #define ASSERTMSG( msg, exp ) \
-    ((!(exp)) ? \
+    ((void)((!(exp)) ? \
         (RtlAssert( #exp, __FILE__, __LINE__, msg ),FALSE) : \
-        TRUE)
+        TRUE))
 
 #else
 
@@ -428,10 +428,10 @@ RtlRaiseException(
     IN PEXCEPTION_RECORD ExceptionRecord
 );
 
+DECLSPEC_NORETURN
 NTSYSAPI
 VOID
 NTAPI
-__declspec(noreturn)
 RtlRaiseStatus(
     IN NTSTATUS Status
 );
@@ -481,7 +481,7 @@ NTAPI
 RtlAllocateHeap(
     IN HANDLE HeapHandle,
     IN ULONG Flags,
-    IN ULONG Size
+    IN SIZE_T Size
 );
 
 NTSYSAPI
@@ -539,7 +539,7 @@ RtlExtendHeap(
     IN HANDLE Heap,
     IN ULONG Flags,
     IN PVOID P,
-    IN ULONG Size
+    IN SIZE_T Size
 );
 
 NTSYSAPI
@@ -646,7 +646,7 @@ RtlSetUserFlagsHeap(
 );
 
 NTSYSAPI
-ULONG
+SIZE_T
 NTAPI
 RtlSizeHeap(
     IN PVOID HeapHandle,
@@ -670,7 +670,7 @@ RtlWalkHeap(
     IN HANDLE HeapHandle,
     IN PVOID HeapEntry
 );
-    
+
 #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
 
 //
@@ -1097,6 +1097,8 @@ RtlMapGenericMask(
     PGENERIC_MAPPING GenericMapping
 );
 
+#ifdef NTOS_MODE_USER
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1107,6 +1109,8 @@ RtlQueryInformationAcl(
     ACL_INFORMATION_CLASS InformationClass
 );
 
+#endif
+
 NTSYSAPI
 VOID
 NTAPI
@@ -1176,6 +1180,8 @@ RtlSetGroupSecurityDescriptor(
     IN BOOLEAN GroupDefaulted
 );
 
+#ifdef NTOS_MODE_USER
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1186,6 +1192,8 @@ RtlSetInformationAcl(
     ACL_INFORMATION_CLASS InformationClass
 );
 
+#endif
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1362,6 +1370,8 @@ RtlCharToInteger(
 //
 // Byte Swap Functions
 //
+#ifdef NTOS_MODE_USER
+
 #if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
     ((defined(_M_AMD64) || \
      defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
@@ -1376,8 +1386,15 @@ unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
 #define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
 #define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
 
+#elif defined (__GNUC__)
+
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
+
 #else
 
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTSYSAPI
 USHORT
 FASTCALL
@@ -1392,8 +1409,10 @@ NTSYSAPI
 ULONGLONG
 FASTCALL
 RtlUlonglongByteSwap(IN ULONGLONG Source);
+#endif
 
 #endif
+#endif // NTOS_MODE_USER
 
 //
 // Unicode->Ansi String Functions
@@ -1459,7 +1478,7 @@ RtlUpcaseUnicodeToOemN(
     PCHAR OemString,
     ULONG OemSize,
     PULONG ResultSize,
-    PWCHAR UnicodeString,
+    PCWCH UnicodeString,
     ULONG UnicodeSize
 );
 
@@ -1489,7 +1508,7 @@ RtlUnicodeToOemN(
     PCHAR OemString,
     ULONG OemSize,
     PULONG ResultSize,
-    PWCHAR UnicodeString,
+    PCWCH UnicodeString,
     ULONG UnicodeSize
 );
 
@@ -1514,7 +1533,7 @@ RtlUpcaseUnicodeToMultiByteN(
     PCHAR MbString,
     ULONG MbSize,
     PULONG ResultSize,
-    PWCHAR UnicodeString,
+    PCWCH UnicodeString,
     ULONG UnicodeSize
 );
 
@@ -1523,7 +1542,7 @@ NTSTATUS
 NTAPI
 RtlUnicodeToMultiByteSize(
     PULONG MbSize,
-    PWCHAR UnicodeString,
+    PCWCH UnicodeString,
     ULONG UnicodeSize
 );
 
@@ -1551,7 +1570,7 @@ RtlOemToUnicodeN(
     PWSTR UnicodeString,
     ULONG MaxBytesInUnicodeString,
     PULONG BytesInUnicodeString,
-    IN PCHAR OemString,
+    IN PCCH OemString,
     ULONG BytesInOemString
 );
 
@@ -1726,7 +1745,7 @@ NTSYSAPI
 BOOLEAN
 NTAPI
 RtlIsTextUnicode(
-    LPCVOID Buffer,
+    PVOID Buffer,
     INT Length,
     INT *Flags
 );
@@ -1993,6 +2012,11 @@ RtlInitializeContext(
     IN PINITIAL_TEB InitialTeb
 );
 
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlIsThreadWithinLoaderCallout(VOID);
+
 NTSYSAPI
 PRTL_USER_PROCESS_PARAMETERS
 NTAPI
@@ -2628,6 +2652,7 @@ DbgPrintEx(
     IN ...
 );
 
+NTSYSAPI
 ULONG
 NTAPI
 DbgPrompt(
@@ -2642,10 +2667,10 @@ DbgBreakPoint(
     VOID
 );
 
-NTSTATUS
+VOID
 NTAPI
 DbgLoadImageSymbols(
-    IN PANSI_STRING Name,
+    IN PSTRING Name,
     IN PVOID Base,
     IN ULONG_PTR ProcessId
 );
@@ -2653,11 +2678,18 @@ DbgLoadImageSymbols(
 VOID
 NTAPI
 DbgUnLoadImageSymbols(
-    IN PANSI_STRING Name,
+    IN PSTRING Name,
     IN PVOID Base,
     IN ULONG_PTR ProcessId
 );
 
+VOID
+NTAPI
+DbgCommandString(
+    IN PCCH Name,
+    IN PCCH Command
+);
+
 //
 // Generic Table Functions
 //
@@ -2883,17 +2915,22 @@ NTSYSAPI
 VOID
 NTAPI
 RtlReleaseActivationContext(
-    IN PVOID *Context
+    IN HANDLE handle
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 RtlDeactivateActivationContext(
-    DWORD dwFlags,
+    ULONG dwFlags,
     ULONG_PTR ulCookie
 );
 
+NTSYSAPI
+VOID
+NTAPI
+RtlFreeThreadActivationContextStack(void);
+
 NTSYSAPI
 NTSTATUS
 NTAPI