Lines Matching refs:pList
29 void InitLinkedList( GenLinkedList *pList, size_t linkOffset) in InitLinkedList() argument
32 pList->Head = NULL; in InitLinkedList()
33 pList->Tail = NULL; in InitLinkedList()
34 pList->LinkOffset = linkOffset; in InitLinkedList()
38 void AddToTail( GenLinkedList *pList, void *elem) in AddToTail() argument
41 if ( pList->Tail) { in AddToTail()
42 ASSIGNLINK( pList->Tail, elem, pList->LinkOffset); in AddToTail()
44 pList->Head = elem; in AddToTail()
45 ASSIGNLINK( elem, NULL, pList->LinkOffset); in AddToTail()
47 pList->Tail = elem; in AddToTail()
51 void AddToHead( GenLinkedList *pList, void *elem) in AddToHead() argument
54 ASSIGNLINK( elem, pList->Head, pList->LinkOffset); in AddToHead()
55 if ( pList->Tail == NULL) in AddToHead()
56 pList->Tail = elem; in AddToHead()
58 pList->Head = elem; in AddToHead()
62 int RemoveFromList( GenLinkedList *pList, void *elem) in RemoveFromList() argument
68 for ( iElem = pList->Head, lastElem = NULL; iElem; iElem = GETLINK( iElem, pList->LinkOffset)) { in RemoveFromList()
71 ASSIGNLINK( lastElem, GETLINK( elem, pList->LinkOffset), pList->LinkOffset); in RemoveFromList()
73 pList->Head = GETLINK( elem, pList->LinkOffset); in RemoveFromList()
75 if ( pList->Tail == elem) in RemoveFromList()
76 pList->Tail = lastElem ? lastElem : NULL; in RemoveFromList()
77 … ASSIGNLINK( elem, NULL, pList->LinkOffset); // maybe catch a stale reference bug. in RemoveFromList()
87 int ReplaceElem( GenLinkedList *pList, void *elemInList, void *newElem) in ReplaceElem() argument
95 for ( iElem = pList->Head, lastElem = NULL; iElem; iElem = GETLINK( iElem, pList->LinkOffset)) in ReplaceElem()
99 ASSIGNLINK( newElem, GETLINK( elemInList, pList->LinkOffset), pList->LinkOffset); in ReplaceElem()
102 ASSIGNLINK( lastElem, newElem, pList->LinkOffset); in ReplaceElem()
106 pList->Head = newElem; in ReplaceElem()
108 if ( pList->Tail == elemInList) in ReplaceElem()
109 pList->Tail = newElem; in ReplaceElem()
121 void InitDoubleLinkedList( GenDoubleLinkedList *pList, size_t fwdLinkOffset, in InitDoubleLinkedList() argument
125 pList->Head = NULL; in InitDoubleLinkedList()
126 pList->Tail = NULL; in InitDoubleLinkedList()
127 pList->FwdLinkOffset = fwdLinkOffset; in InitDoubleLinkedList()
128 pList->BackLinkOffset = backLinkOffset; in InitDoubleLinkedList()
132 void DLLAddToHead( GenDoubleLinkedList *pList, void *elem) in DLLAddToHead() argument
137 pNext = pList->Head; in DLLAddToHead()
140 ASSIGNLINK( elem, pList->Head, pList->FwdLinkOffset); in DLLAddToHead()
141 pList->Head = elem; in DLLAddToHead()
145 ASSIGNLINK( pNext, elem, pList->BackLinkOffset); in DLLAddToHead()
147 pList->Tail = elem; in DLLAddToHead()
148 ASSIGNLINK( elem, NULL, pList->BackLinkOffset); in DLLAddToHead()
152 void DLLRemoveFromList( GenDoubleLinkedList *pList, void *elem) in DLLRemoveFromList() argument
158 pNext = GETLINK( elem, pList->FwdLinkOffset); in DLLRemoveFromList()
159 pPrev = GETLINK( elem, pList->BackLinkOffset); in DLLRemoveFromList()
163 ASSIGNLINK( pPrev, pNext, pList->FwdLinkOffset); in DLLRemoveFromList()
165 pList->Head = pNext; in DLLRemoveFromList()
169 ASSIGNLINK( pNext, pPrev, pList->BackLinkOffset); in DLLRemoveFromList()
171 pList->Tail = pPrev; in DLLRemoveFromList()
173 ASSIGNLINK( elem, NULL, pList->FwdLinkOffset); in DLLRemoveFromList()
174 ASSIGNLINK( elem, NULL, pList->BackLinkOffset); in DLLRemoveFromList()
193 void *GetHeadPtr( GenLinkedOffsetList *pList) in GetHeadPtr() argument
196 return pList->Head ? ( (char*) (pList) + pList->Head) : NULL; in GetHeadPtr()
200 void *GetTailPtr( GenLinkedOffsetList *pList) in GetTailPtr() argument
203 return pList->Tail ? ( (char*) (pList) + pList->Tail) : NULL; in GetTailPtr()
207 void *GetOffsetLink( GenLinkedOffsetList *pList, void *elem) in GetOffsetLink() argument
212 nextOffset = GETOFFSET( elem, pList->LinkOffset); in GetOffsetLink()
218 void InitLinkedOffsetList( GenLinkedOffsetList *pList, size_t linkOffset) in InitLinkedOffsetList() argument
221 pList->Head = 0; in InitLinkedOffsetList()
222 pList->Tail = 0; in InitLinkedOffsetList()
223 pList->LinkOffset = linkOffset; in InitLinkedOffsetList()
227 void OffsetAddToTail( GenLinkedOffsetList *pList, void *elem) in OffsetAddToTail() argument
230 if ( pList->Tail) { in OffsetAddToTail()
231 AssignOffsetLink( GetTailPtr( pList), elem, pList->LinkOffset); in OffsetAddToTail()
233 pList->Head = (size_t) elem - (size_t) pList; in OffsetAddToTail()
234 AssignOffsetLink( elem, NULL, pList->LinkOffset); in OffsetAddToTail()
236 pList->Tail = (size_t) elem - (size_t) pList; in OffsetAddToTail()
240 void OffsetAddToHead( GenLinkedOffsetList *pList, void *elem) in OffsetAddToHead() argument
243 AssignOffsetLink( elem, GetHeadPtr( pList), pList->LinkOffset); in OffsetAddToHead()
244 if ( pList->Tail == 0) in OffsetAddToHead()
245 pList->Tail = (size_t) elem - (size_t) pList; in OffsetAddToHead()
247 pList->Head = (size_t) elem - (size_t) pList; in OffsetAddToHead()
251 int OffsetRemoveFromList( GenLinkedOffsetList *pList, void *elem) in OffsetRemoveFromList() argument
260 for ( iElem = GetHeadPtr( pList), lastElem = NULL; iElem; in OffsetRemoveFromList()
261 iElem = GetOffsetLink( pList, iElem)) in OffsetRemoveFromList()
265 AssignOffsetLink( lastElem, GetOffsetLink( pList, elem), pList->LinkOffset); in OffsetRemoveFromList()
267 iElem = GetOffsetLink( pList, elem); in OffsetRemoveFromList()
268 pList->Head = iElem ? (size_t) iElem - (size_t) pList : 0; in OffsetRemoveFromList()
270 if ( GetTailPtr( pList) == elem) in OffsetRemoveFromList()
271 pList->Tail = lastElem ? (size_t) lastElem - (size_t) pList : 0; in OffsetRemoveFromList()
272 … AssignOffsetLink( elem, NULL, pList->LinkOffset); // maybe catch a stale reference bug. in OffsetRemoveFromList()
282 int OffsetReplaceElem( GenLinkedOffsetList *pList, void *elemInList, void *newElem) in OffsetReplaceElem() argument
290 for ( iElem = GetHeadPtr( pList), lastElem = NULL; iElem; in OffsetReplaceElem()
291 iElem = GetOffsetLink( pList, iElem)) in OffsetReplaceElem()
295 AssignOffsetLink( newElem, GetOffsetLink( pList, elemInList), pList->LinkOffset); in OffsetReplaceElem()
298 AssignOffsetLink( lastElem, newElem, pList->LinkOffset); in OffsetReplaceElem()
302 pList->Head = (size_t) newElem - (size_t) pList; in OffsetReplaceElem()
304 if ( GetTailPtr( pList) == elemInList) in OffsetReplaceElem()
305 pList->Tail = (size_t) newElem - (size_t) pList; in OffsetReplaceElem()