source: trunk/src/imagehlp/internal.cpp

Last change on this file was 3922, checked in by bird, 25 years ago

Added the CVS Id keyword.

File size: 2.4 KB
RevLine 
[3922]1/* $Id: internal.cpp,v 1.3 2000-08-02 14:56:26 bird Exp $ */
[736]2/*
3 * IMAGEHLP library
4 *
5 * Copyright 1998 Patrik Stridvall
6 */
7
8#include <os2win.h>
[3634]9#include <odinwrap.h>
10#include <imagehlp.h>
11#include <heapstring.h>
[736]12
13/***********************************************************************
[3634]14 * InitializeListHead
[736]15 */
16VOID InitializeListHead(PLIST_ENTRY pListHead)
17{
18 pListHead->Flink = pListHead;
19 pListHead->Blink = pListHead;
20}
21
22/***********************************************************************
[3634]23 * InsertHeadList
[736]24 */
25VOID InsertHeadList(PLIST_ENTRY pListHead, PLIST_ENTRY pEntry)
26{
27 pEntry->Blink = pListHead;
28 pEntry->Flink = pListHead->Flink;
29 pListHead->Flink = pEntry;
30}
31
32/***********************************************************************
[3634]33 * InsertTailList
[736]34 */
35VOID InsertTailList(PLIST_ENTRY pListHead, PLIST_ENTRY pEntry)
36{
37 pEntry->Flink = pListHead;
38 pEntry->Blink = pListHead->Blink;
39 pListHead->Blink = pEntry;
40}
41
42/***********************************************************************
[3634]43 * IsListEmpty
[736]44 */
45BOOLEAN IsListEmpty(PLIST_ENTRY pListHead)
46{
47 return !pListHead;
48}
49
50/***********************************************************************
[3634]51 * PopEntryList
[736]52 */
53PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY pListHead)
54{
55 pListHead->Next = NULL;
56 return pListHead;
57}
58
59/***********************************************************************
[3634]60 * PushEntryList
[736]61 */
62VOID PushEntryList(
63 PSINGLE_LIST_ENTRY pListHead, PSINGLE_LIST_ENTRY pEntry)
64{
65 pEntry->Next=pListHead;
66}
67
68/***********************************************************************
[3634]69 * RemoveEntryList
[736]70 */
71VOID RemoveEntryList(PLIST_ENTRY pEntry)
72{
73 pEntry->Flink->Blink = pEntry->Blink;
74 pEntry->Blink->Flink = pEntry->Flink;
75 pEntry->Flink = NULL;
76 pEntry->Blink = NULL;
77}
78
79/***********************************************************************
[3634]80 * RemoveHeadList
[736]81 */
82PLIST_ENTRY RemoveHeadList(PLIST_ENTRY pListHead)
83{
84 PLIST_ENTRY p = pListHead->Flink;
[3922]85
[736]86 if(p != pListHead)
87 {
[3922]88 RemoveEntryList(pListHead);
[736]89 return p;
90 }
91 else
92 {
93 pListHead->Flink = NULL;
94 pListHead->Blink = NULL;
95 return NULL;
96 }
97}
98
99/***********************************************************************
[3634]100 * RemoveTailList
[736]101 */
102PLIST_ENTRY RemoveTailList(PLIST_ENTRY pListHead)
103{
104 RemoveHeadList(pListHead->Blink);
105 if(pListHead != pListHead->Blink)
106 return pListHead;
107 else
108 return NULL;
109}
Note: See TracBrowser for help on using the repository browser.