Home | History | Annotate | Download | only in mDNSShared

Lines Matching refs:pList

37 void		InitLinkedList( GenLinkedList *pList, size_t linkOffset)
38 /* Initialize the block of memory pointed to by pList as a linked list. */
40 pList->Head = NULL;
41 pList->Tail = NULL;
42 pList->LinkOffset = linkOffset;
46 void AddToTail( GenLinkedList *pList, void *elem)
49 if ( pList->Tail) {
50 ASSIGNLINK( pList->Tail, elem, pList->LinkOffset);
52 pList->Head = elem;
53 ASSIGNLINK( elem, NULL, pList->LinkOffset);
55 pList->Tail = elem;
59 void AddToHead( GenLinkedList *pList, void *elem)
62 ASSIGNLINK( elem, pList->Head, pList->LinkOffset);
63 if ( pList->Tail == NULL)
64 pList->Tail = elem;
66 pList->Head = elem;
70 int RemoveFromList( GenLinkedList *pList, void *elem)
76 for ( iElem = pList->Head, lastElem = NULL; iElem; iElem = GETLINK( iElem, pList->LinkOffset)) {
79 ASSIGNLINK( lastElem, GETLINK( elem, pList->LinkOffset), pList->LinkOffset);
81 pList->Head = GETLINK( elem, pList->LinkOffset);
83 if ( pList->Tail == elem)
84 pList->Tail = lastElem ? lastElem : NULL;
85 ASSIGNLINK( elem, NULL, pList->LinkOffset); // maybe catch a stale reference bug.
95 int ReplaceElem( GenLinkedList *pList, void *elemInList, void *newElem)
103 for ( iElem = pList->Head, lastElem = NULL; iElem; iElem = GETLINK( iElem, pList->LinkOffset))
107 ASSIGNLINK( newElem, GETLINK( elemInList, pList->LinkOffset), pList->LinkOffset);
110 ASSIGNLINK( lastElem, newElem, pList->LinkOffset);
114 pList->Head = newElem;
116 if ( pList->Tail == elemInList)
117 pList->Tail = newElem;
129 void InitDoubleLinkedList( GenDoubleLinkedList *pList, size_t fwdLinkOffset,
131 /* Initialize the block of memory pointed to by pList as a double linked list. */
133 pList->Head = NULL;
134 pList->Tail = NULL;
135 pList->FwdLinkOffset = fwdLinkOffset;
136 pList->BackLinkOffset = backLinkOffset;
140 void DLLAddToHead( GenDoubleLinkedList *pList, void *elem)
145 pNext = pList->Head;
148 ASSIGNLINK( elem, pList->Head, pList->FwdLinkOffset);
149 pList->Head = elem;
153 ASSIGNLINK( pNext, elem, pList->BackLinkOffset);
155 pList->Tail = elem;
156 ASSIGNLINK( elem, NULL, pList->BackLinkOffset);
160 void DLLRemoveFromList( GenDoubleLinkedList *pList, void *elem)
166 pNext = GETLINK( elem, pList->FwdLinkOffset);
167 pPrev = GETLINK( elem, pList->BackLinkOffset);
171 ASSIGNLINK( pPrev, pNext, pList->FwdLinkOffset);
173 pList->Head = pNext;
177 ASSIGNLINK( pNext, pPrev, pList->BackLinkOffset);
179 pList->Tail = pPrev;
181 ASSIGNLINK( elem, NULL, pList->FwdLinkOffset);
182 ASSIGNLINK( elem, NULL, pList->BackLinkOffset);
201 void *GetHeadPtr( GenLinkedOffsetList *pList)
204 return pList->Head ? ( (char*) (pList) + pList->Head) : NULL;
208 void *GetTailPtr( GenLinkedOffsetList *pList)
211 return pList->Tail ? ( (char*) (pList) + pList->Tail) : NULL;
215 void *GetOffsetLink( GenLinkedOffsetList *pList, void *elem)
216 /* Return the link pointer contained within element e for pList, or NULL if it is 0. */
220 nextOffset = GETOFFSET( elem, pList->LinkOffset);
226 void InitLinkedOffsetList( GenLinkedOffsetList *pList, size_t linkOffset)
227 /* Initialize the block of memory pointed to by pList as a linked list. */
229 pList->Head = 0;
230 pList->Tail = 0;
231 pList->LinkOffset = linkOffset;
235 void OffsetAddToTail( GenLinkedOffsetList *pList, void *elem)
238 if ( pList->Tail) {
239 AssignOffsetLink( GetTailPtr( pList), elem, pList->LinkOffset);
241 pList->Head = (size_t) elem - (size_t) pList;
242 AssignOffsetLink( elem, NULL, pList->LinkOffset);
244 pList->Tail = (size_t) elem - (size_t) pList;
248 void OffsetAddToHead( GenLinkedOffsetList *pList, void *elem)
251 AssignOffsetLink( elem, GetHeadPtr( pList), pList->LinkOffset);
252 if ( pList->Tail == 0)
253 pList->Tail = (size_t) elem - (size_t) pList;
255 pList->Head = (size_t) elem - (size_t) pList;
259 int OffsetRemoveFromList( GenLinkedOffsetList *pList, void *elem)
265 for ( iElem = GetHeadPtr( pList), lastElem = NULL; iElem;
266 iElem = GetOffsetLink( pList, iElem))
270 AssignOffsetLink( lastElem, GetOffsetLink( pList, elem), pList->LinkOffset);
272 iElem = GetOffsetLink( pList, elem);
273 pList->Head = iElem ? (size_t) iElem - (size_t) pList : 0;
275 if ( GetTailPtr( pList) == elem)
276 pList->Tail = lastElem ? (size_t) lastElem - (size_t) pList : 0;
277 AssignOffsetLink( elem, NULL, pList->LinkOffset); // maybe catch a stale reference bug.
287 int OffsetReplaceElem( GenLinkedOffsetList *pList, void *elemInList, void *newElem)
295 for ( iElem = GetHeadPtr( pList), lastElem = NULL; iElem;
296 iElem = GetOffsetLink( pList, iElem))
300 AssignOffsetLink( newElem, GetOffsetLink( pList, elemInList), pList->LinkOffset);
303 AssignOffsetLink( lastElem, newElem, pList->LinkOffset);
307 pList->Head = (size_t) newElem - (size_t) pList;
309 if ( GetTailPtr( pList) == elemInList)
310 pList->Tail = (size_t) newElem - (size_t) pList;