2005-09-08 00:09:32 +00:00
|
|
|
/* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS system libraries
|
|
|
|
* PURPOSE: Generic Table Implementation
|
|
|
|
* FILE: lib/rtl/genertictbl.c
|
|
|
|
* PROGRAMMERS:
|
2004-08-05 18:17:37 +00:00
|
|
|
*/
|
|
|
|
|
2005-09-08 00:09:32 +00:00
|
|
|
/* INCLUDES *****************************************************************/
|
|
|
|
|
2005-07-26 08:39:07 +00:00
|
|
|
#include <rtl.h>
|
2004-08-05 18:17:37 +00:00
|
|
|
|
|
|
|
#define NDEBUG
|
|
|
|
#include <debug.h>
|
2005-02-14 14:36:03 +00:00
|
|
|
|
2004-08-05 18:17:37 +00:00
|
|
|
/* FUNCTIONS *****************************************************************/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
BOOLEAN
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlDeleteElementGenericTable (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PVOID Buffer
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
BOOLEAN
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlDeleteElementGenericTableAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
PVOID Buffer
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlEnumerateGenericTable (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
BOOLEAN Restart
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlEnumerateGenericTableAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
BOOLEAN Restart
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlEnumerateGenericTableLikeADirectory (
|
|
|
|
IN PRTL_AVL_TABLE Table,
|
|
|
|
IN PRTL_AVL_MATCH_FUNCTION MatchFunction,
|
|
|
|
IN PVOID MatchData,
|
|
|
|
IN ULONG NextFlag,
|
|
|
|
IN OUT PVOID *RestartKey,
|
|
|
|
IN OUT PULONG DeleteCount,
|
|
|
|
IN OUT PVOID Buffer
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlEnumerateGenericTableWithoutSplaying (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PVOID *RestartKey
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlEnumerateGenericTableWithoutSplayingAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
PVOID *RestartKey
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlGetElementGenericTable(
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
ULONG I
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlGetElementGenericTableAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
ULONG I
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
VOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlInitializeGenericTable (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
|
|
|
|
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
|
|
|
|
PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
|
|
|
|
PVOID TableContext
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
2005-02-14 14:36:03 +00:00
|
|
|
|
2004-08-05 18:17:37 +00:00
|
|
|
/*
|
2005-02-14 14:36:03 +00:00
|
|
|
* @implemented
|
|
|
|
*/
|
2005-10-19 17:03:38 +00:00
|
|
|
VOID NTAPI
|
2005-02-14 14:36:03 +00:00
|
|
|
RtlInitializeGenericTableAvl(IN OUT PRTL_AVL_TABLE Table,
|
|
|
|
IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
|
|
|
|
IN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
|
|
|
|
IN PRTL_AVL_FREE_ROUTINE FreeRoutine,
|
|
|
|
IN PVOID TableContext)
|
2004-08-05 18:17:37 +00:00
|
|
|
{
|
2005-02-14 14:36:03 +00:00
|
|
|
RtlZeroMemory(Table,
|
|
|
|
sizeof(RTL_AVL_TABLE));
|
|
|
|
Table->BalancedRoot.Parent = &Table->BalancedRoot;
|
|
|
|
|
|
|
|
Table->CompareRoutine = CompareRoutine;
|
|
|
|
Table->AllocateRoutine = AllocateRoutine;
|
|
|
|
Table->FreeRoutine = FreeRoutine;
|
|
|
|
Table->TableContext = TableContext;
|
2004-08-05 18:17:37 +00:00
|
|
|
}
|
|
|
|
|
2005-02-14 14:36:03 +00:00
|
|
|
|
2004-08-05 18:17:37 +00:00
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlInsertElementGenericTable (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PVOID Buffer,
|
|
|
|
ULONG BufferSize,
|
|
|
|
PBOOLEAN NewElement OPTIONAL
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlInsertElementGenericTableAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
PVOID Buffer,
|
|
|
|
ULONG BufferSize,
|
|
|
|
PBOOLEAN NewElement OPTIONAL
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlInsertElementGenericTableFull (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PVOID Buffer,
|
|
|
|
ULONG BufferSize,
|
|
|
|
PBOOLEAN NewElement OPTIONAL,
|
|
|
|
PVOID NodeOrParent,
|
|
|
|
TABLE_SEARCH_RESULT SearchResult
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlInsertElementGenericTableFullAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
PVOID Buffer,
|
|
|
|
ULONG BufferSize,
|
|
|
|
PBOOLEAN NewElement OPTIONAL,
|
|
|
|
PVOID NodeOrParent,
|
|
|
|
TABLE_SEARCH_RESULT SearchResult
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
BOOLEAN
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlIsGenericTableEmpty (
|
|
|
|
PRTL_GENERIC_TABLE Table
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
BOOLEAN
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlIsGenericTableEmptyAvl (
|
|
|
|
PRTL_AVL_TABLE Table
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlLookupElementGenericTable (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PVOID Buffer
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlLookupElementGenericTableAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
PVOID Buffer
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlLookupElementGenericTableFull (
|
|
|
|
PRTL_GENERIC_TABLE Table,
|
|
|
|
PVOID Buffer,
|
|
|
|
OUT PVOID *NodeOrParent,
|
|
|
|
OUT TABLE_SEARCH_RESULT *SearchResult
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* @unimplemented
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-10-19 17:03:38 +00:00
|
|
|
NTAPI
|
2004-08-05 18:17:37 +00:00
|
|
|
RtlLookupElementGenericTableFullAvl (
|
|
|
|
PRTL_AVL_TABLE Table,
|
|
|
|
PVOID Buffer,
|
|
|
|
OUT PVOID *NodeOrParent,
|
|
|
|
OUT TABLE_SEARCH_RESULT *SearchResult
|
|
|
|
)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
2005-02-14 14:36:03 +00:00
|
|
|
* @implemented
|
|
|
|
*/
|
2005-10-19 17:03:38 +00:00
|
|
|
ULONG NTAPI
|
2005-02-14 14:36:03 +00:00
|
|
|
RtlNumberGenericTableElements(IN PRTL_GENERIC_TABLE Table)
|
2004-08-05 18:17:37 +00:00
|
|
|
{
|
2005-02-14 14:36:03 +00:00
|
|
|
return Table->NumberGenericTableElements;
|
2004-08-05 18:17:37 +00:00
|
|
|
}
|
|
|
|
|
2005-02-14 14:36:03 +00:00
|
|
|
|
2004-08-05 18:17:37 +00:00
|
|
|
/*
|
2005-02-14 14:36:03 +00:00
|
|
|
* @implemented
|
|
|
|
*/
|
2005-10-19 17:03:38 +00:00
|
|
|
ULONG NTAPI
|
2005-02-14 14:36:03 +00:00
|
|
|
RtlNumberGenericTableElementsAvl(IN PRTL_AVL_TABLE Table)
|
2004-08-05 18:17:37 +00:00
|
|
|
{
|
2005-02-14 14:36:03 +00:00
|
|
|
return Table->NumberGenericTableElements;
|
2004-08-05 18:17:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* EOF */
|