/* * IMAGEHLP library * * Copyright 1998 Patrik Stridvall */ #include "winbase.h" #include "winerror.h" #include "wintypes.h" #include "debug.h" #include "imagehlp.h" /*********************************************************************** * InitializeListHead32 */ VOID InitializeListHead32(PLIST_ENTRY32 pListHead) { pListHead->Flink = pListHead; pListHead->Blink = pListHead; } /*********************************************************************** * InsertHeadList32 */ VOID InsertHeadList32(PLIST_ENTRY32 pListHead, PLIST_ENTRY32 pEntry) { pEntry->Blink = pListHead; pEntry->Flink = pListHead->Flink; pListHead->Flink = pEntry; } /*********************************************************************** * InsertTailList32 */ VOID InsertTailList32(PLIST_ENTRY32 pListHead, PLIST_ENTRY32 pEntry) { pEntry->Flink = pListHead; pEntry->Blink = pListHead->Blink; pListHead->Blink = pEntry; } /*********************************************************************** * IsListEmpty32 */ BOOLEAN IsListEmpty32(PLIST_ENTRY32 pListHead) { return !pListHead; } /*********************************************************************** * PopEntryList32 */ PSINGLE_LIST_ENTRY32 PopEntryList32(PSINGLE_LIST_ENTRY32 pListHead) { pListHead->Next = NULL; return pListHead; } /*********************************************************************** * PushEntryList32 */ VOID PushEntryList32( PSINGLE_LIST_ENTRY32 pListHead, PSINGLE_LIST_ENTRY32 pEntry) { pEntry->Next=pListHead; } /*********************************************************************** * RemoveEntryList32 */ VOID RemoveEntryList32(PLIST_ENTRY32 pEntry) { pEntry->Flink->Blink = pEntry->Blink; pEntry->Blink->Flink = pEntry->Flink; pEntry->Flink = NULL; pEntry->Blink = NULL; } /*********************************************************************** * RemoveHeadList32 */ PLIST_ENTRY32 RemoveHeadList32(PLIST_ENTRY32 pListHead) { PLIST_ENTRY32 p = pListHead->Flink; if(p != pListHead) { RemoveEntryList32(pListHead); return p; } else { pListHead->Flink = NULL; pListHead->Blink = NULL; return NULL; } } /*********************************************************************** * RemoveTailList32 */ PLIST_ENTRY32 RemoveTailList32(PLIST_ENTRY32 pListHead) { RemoveHeadList32(pListHead->Blink); if(pListHead != pListHead->Blink) return pListHead; else return NULL; }