#include "extypes.h"
#include "rtltypes.h"
+/* MACROS ********************************************************************/
+
+/* FIXME: Eventually move the ones in rtltypes.h here... */
+
+/*
+ * Splay Tree Macros
+ */
+#define RtlIsLeftChild(Links) \
+ (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlIsRoot(Links) \
+ (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlLeftChild(Links) \
+ (PRTL_SPLAY_LINKS)(Links)->LeftChild
+
+#define RtlParent(Links) \
+ (PRTL_SPLAY_LINKS)(Links)->Parent
+
/* PROTOTYPES ****************************************************************/
+/*
+ * Splay Tree Functions
+ */
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlSplay(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlDelete(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+VOID
+NTAPI
+RtlDeleteNoSplay(
+ PRTL_SPLAY_LINKS Links,
+ PRTL_SPLAY_LINKS *Root
+);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlSubtreeSuccessor(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlSubtreePredecessor(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlRealSuccessor(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlRealPredecessor(PRTL_SPLAY_LINKS Links);
+
/*
* Error and Exception Functions
*/
IN PULONG PrimaryGroupSize
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlSelfRelativeToAbsoluteSD2(
+ IN OUT PSECURITY_DESCRIPTOR SelfRelativeSD,
+ OUT PULONG BufferSize
+);
+
NTSYSAPI
NTSTATUS
NTAPI
/*
* Ansi->Unicode String Functions
*/
+NTSYSAPI
+ULONG
+NTAPI
+RtlxAnsiStringToUnicodeSize(
+ PCANSI_STRING AnsiString
+);
+
NTSYSAPI
NTSTATUS
NTAPI
NTAPI
RtlReleasePebLock(VOID);
+NTSYSAPI
+VOID
+NTAPI
+RtlSetProcessIsCritical(
+ IN BOOLEAN NewValue,
+ OUT PBOOLEAN OldValue OPTIONAL,
+ IN BOOLEAN IsWinlogon
+);
+
/*
* Environment/Path Functions
*/
NTAPI
RtlUniform(PULONG Seed);
+/*
+ * Network Functions
+ */
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlIpv4StringToAddressW(
+ IN LPWSTR IpString,
+ IN ULONG Base,
+ OUT PULONG PtrToIpAddr,
+ OUT PULONG IpAddr
+);
+
/*
* Time Functions
*/
NTAPI
RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlGetNtProductType(OUT PNT_PRODUCT_TYPE ProductType);
static __inline struct _PEB* NtCurrentPeb (void)
{