You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
2.4 KiB
149 lines
2.4 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 2000
|
|
//
|
|
// File: LinkList.cxx
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
/* --------------------------------------------------------------------
|
|
|
|
File: Linkist.cxx
|
|
|
|
Description:
|
|
|
|
The implementation of the functions that support link list operations.
|
|
All of these simply relegate to the macro versions
|
|
|
|
|
|
History :
|
|
|
|
kamenm Aug 2000 Created
|
|
|
|
-------------------------------------------------------------------- */
|
|
#include <precomp.hxx>
|
|
|
|
|
|
PLIST_ENTRY
|
|
RpcpfRemoveHeadList(
|
|
PLIST_ENTRY ListHead
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Removes the head of the list.
|
|
|
|
Arguments:
|
|
ListHead - the head of the list
|
|
|
|
Return Value:
|
|
The removed entry. If the list is empty,
|
|
ListHead will be returned.
|
|
|
|
--*/
|
|
{
|
|
return RpcpRemoveHeadList(ListHead);
|
|
}
|
|
|
|
|
|
PLIST_ENTRY
|
|
RpcpfRemoveTailList(
|
|
PLIST_ENTRY ListHead
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Removes the tail of the list
|
|
|
|
Arguments:
|
|
ListHead - the head of the list
|
|
|
|
Return Value:
|
|
The removed entry. If the list is empty,
|
|
ListHead will be returned.
|
|
|
|
--*/
|
|
{
|
|
return RpcpRemoveTailList(ListHead);
|
|
}
|
|
|
|
|
|
VOID
|
|
RpcpfRemoveEntryList(
|
|
PLIST_ENTRY Entry
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Removes an entry from the list
|
|
|
|
Arguments:
|
|
Entry - the entry to remove
|
|
|
|
Return Value:
|
|
|
|
--*/
|
|
{
|
|
ASSERT(Entry->Blink->Flink == Entry);
|
|
ASSERT(Entry->Flink->Blink == Entry);
|
|
|
|
RpcpRemoveEntryList(Entry);
|
|
|
|
#if DBG
|
|
// Catch double-remove of an entry on chk builds.
|
|
Entry->Blink = NULL;
|
|
Entry->Flink = NULL;
|
|
#endif
|
|
}
|
|
|
|
|
|
VOID
|
|
RpcpfInsertTailList(
|
|
PLIST_ENTRY ListHead,
|
|
PLIST_ENTRY Entry
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Adds an entry to the tail of the list
|
|
|
|
Arguments:
|
|
ListHead - the head of the list
|
|
Entry - the entry to add
|
|
|
|
Return Value:
|
|
|
|
--*/
|
|
{
|
|
RpcpInsertTailList(ListHead,Entry);
|
|
}
|
|
|
|
|
|
VOID
|
|
RpcpfInsertHeadList(
|
|
PLIST_ENTRY ListHead,
|
|
PLIST_ENTRY Entry
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Adds an entry to the head of the list
|
|
|
|
Arguments:
|
|
ListHead - the head of the list
|
|
Entry - the entry to add
|
|
|
|
Return Value:
|
|
|
|
--*/
|
|
{
|
|
RpcpInsertHeadList(ListHead,Entry);
|
|
}
|
|
|