- Create "AVL FUNCTIONS" section tag.

- Implement RtlENumerateGEnericTableWithoutSplaying.

svn path=/trunk/; revision=24544
This commit is contained in:
Alex Ionescu 2006-10-16 03:51:49 +00:00
parent cac3dc3812
commit d403bc14c4

View file

@ -356,6 +356,44 @@ RtlEnumerateGenericTable(IN PRTL_GENERIC_TABLE Table,
return FoundNode ? &((PTABLE_ENTRY_HEADER)FoundNode)->UserData : NULL;
}
/*
* @implemented
*/
PVOID
NTAPI
RtlEnumerateGenericTableWithoutSplaying(IN PRTL_GENERIC_TABLE Table,
IN OUT PVOID *RestartKey)
{
PRTL_SPLAY_LINKS FoundNode;
/* Check if the table is empty */
if (RtlIsGenericTableEmpty(Table)) return NULL;
/* Check if we have to restart */
if (!(*RestartKey))
{
/* Then find the leftmost element */
FoundNode = Table->TableRoot;
do
{
/* Get the left child */
FoundNode = RtlLeftChild(FoundNode);
} while(RtlLeftChild(FoundNode));
/* Splay it */
*RestartKey = FoundNode;
}
else
{
/* Otherwise, try using the real successor */
FoundNode = RtlRealSuccessor(Table->TableRoot);
if (FoundNode) *RestartKey = FoundNode;
}
/* Check if we found the node and return it */
return FoundNode ? &((PTABLE_ENTRY_HEADER)FoundNode)->UserData : NULL;
}
/*
* @unimplemented
*/
@ -373,18 +411,6 @@ RtlEnumerateGenericTableLikeADirectory(IN PRTL_AVL_TABLE Table,
return 0;
}
/*
* @unimplemented
*/
PVOID
NTAPI
RtlEnumerateGenericTableWithoutSplaying(IN PRTL_GENERIC_TABLE Table,
IN OUT PVOID *RestartKey)
{
UNIMPLEMENTED;
return 0;
}
/*
* @unimplemented
*/
@ -397,6 +423,8 @@ RtlGetElementGenericTable(IN PRTL_GENERIC_TABLE Table,
return 0;
}
/* AVL FUNCTIONS *************************************************************/
/*
* @implemented
*/