source: trunk/src/imagehlp/internal.cpp@ 5120

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

Added the CVS Id keyword.

File size: 2.4 KB
Line 
1/* $Id: internal.cpp,v 1.3 2000-08-02 14:56:26 bird Exp $ */
2/*
3 * IMAGEHLP library
4 *
5 * Copyright 1998 Patrik Stridvall
6 */
7
8#include <os2win.h>
9#include <odinwrap.h>
10#include <imagehlp.h>
11#include <heapstring.h>
12
13/***********************************************************************
14 * InitializeListHead
15 */
16VOID InitializeListHead(PLIST_ENTRY pListHead)
17{
18 pListHead->Flink = pListHead;
19 pListHead->Blink = pListHead;
20}
21
22/***********************************************************************
23 * InsertHeadList
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/***********************************************************************
33 * InsertTailList
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/***********************************************************************
43 * IsListEmpty
44 */
45BOOLEAN IsListEmpty(PLIST_ENTRY pListHead)
46{
47 return !pListHead;
48}
49
50/***********************************************************************
51 * PopEntryList
52 */
53PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY pListHead)
54{
55 pListHead->Next = NULL;
56 return pListHead;
57}
58
59/***********************************************************************
60 * PushEntryList
61 */
62VOID PushEntryList(
63 PSINGLE_LIST_ENTRY pListHead, PSINGLE_LIST_ENTRY pEntry)
64{
65 pEntry->Next=pListHead;
66}
67
68/***********************************************************************
69 * RemoveEntryList
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/***********************************************************************
80 * RemoveHeadList
81 */
82PLIST_ENTRY RemoveHeadList(PLIST_ENTRY pListHead)
83{
84 PLIST_ENTRY p = pListHead->Flink;
85
86 if(p != pListHead)
87 {
88 RemoveEntryList(pListHead);
89 return p;
90 }
91 else
92 {
93 pListHead->Flink = NULL;
94 pListHead->Blink = NULL;
95 return NULL;
96 }
97}
98
99/***********************************************************************
100 * RemoveTailList
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.