99#define saLlistInitialize(pList) {(pList)->pHead = &((pList)->Head); \
100 (pList)->pHead->pNext = (pList)->pHead; \
101 (pList)->pHead->pPrev = (pList)->pHead; \
102 (pList)->Count = 0; \
105#define saLlistIOInitialize(pList){(pList)->pHead = &((pList)->Head); \
106 (pList)->pHead->pNext = (pList)->pHead; \
107 (pList)->pHead->pPrev = (pList)->pHead; \
108 (pList)->Count = 0; \
136#define saLlinkInitialize(pLink) { (pLink)->pHead = agNULL; \
137 (pLink)->pNext = agNULL; \
138 (pLink)->pPrev = agNULL; \
141#define saLlinkIOInitialize(pLink) { (pLink)->pHead = agNULL; \
142 (pLink)->pNext = agNULL; \
143 (pLink)->pPrev = agNULL; \
176#define saLlistAdd(pList, pLink) { \
177 (pLink)->pNext = (pList)->pHead; \
178 (pLink)->pPrev = (pList)->pHead->pPrev; \
179 (pLink)->pPrev->pNext = (pLink); \
180 (pList)->pHead->pPrev = (pLink); \
182 (pLink)->pHead = (pList)->pHead; \
185#define saLlistIOAdd(pList, pLink) { \
186 (pLink)->pNext = (pList)->pHead; \
187 (pLink)->pPrev = (pList)->pHead->pPrev; \
188 (pLink)->pPrev->pNext = (pLink); \
189 (pList)->pHead->pPrev = (pLink); \
191 (pLink)->pHead = (pList)->pHead; \
226#define saLlistInsert(pList, pLink, pNew) { \
227 (pNew)->pNext = (pLink); \
228 (pNew)->pPrev = (pLink)->pPrev; \
229 (pNew)->pPrev->pNext = (pNew); \
230 (pLink)->pPrev = (pNew); \
232 (pNew)->pHead = (pList)->pHead; \
268#define saLlistRemove(pList, pLink) { \
269 (pLink)->pPrev->pNext = (pLink)->pNext; \
270 (pLink)->pNext->pPrev = (pLink)->pPrev; \
271 (pLink)->pHead = agNULL; \
275#define saLlistIORemove(pList, pLink) { \
276 (pLink)->pPrev->pNext = (pLink)->pNext; \
277 (pLink)->pNext->pPrev = (pLink)->pPrev; \
278 (pLink)->pHead = agNULL; \
305#define saLlistGetHead(pList) saLlistGetNext(pList,(pList)->pHead)
307#define saLlistIOGetHead(pList) saLlistGetNext(pList,(pList)->pHead)
331#define saLlistGetTail(pList) saLlistGetPrev((pList), (pList)->pHead)
359#define saLlistGetCount(pList) ((pList)->Count)
361#define saLlistIOGetCount(pList) ((pList)->Count)
395#define saLlistGetNext(pList, pLink) (((pLink)->pNext == (pList)->pHead) ? \
396 agNULL : (pLink)->pNext)
398#define saLlistIOGetNext(pList, pLink) (((pLink)->pNext == (pList)->pHead) ? \
399 agNULL : (pLink)->pNext)
433#define saLlistGetPrev(pList, pLink) (((pLink)->pPrev == (pList)->pHead) ? \
434 agNULL : (pLink)->pPrev)
438#define agObjectBase(baseType,fieldName,fieldPtr) \
439 (void * ) fieldPtr == (void *) 0 ? (baseType *) 0 : \
440 ((baseType *)((bit8 *)(fieldPtr) - ((bitptr)(&(((baseType *)0)->fieldName)))))
struct _SALINK SALINK
Structure of Link Data.
struct _SALINK_LIST * PSALINK_LIST
struct _SALINK_LIST SALINK_LIST
Structure of Link List.