Home | History | Annotate | Download | only in mDNSShared

Lines Matching refs:pList

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