Ros Code - ListEntry操作

来源:互联网 发布:北京哪有淘宝培训班 编辑:程序博客网 时间:2024/06/05 18:26

ReactOS-0.3.14-REL-src\ReactOS-0.3.14\include\psdk\winternl.h【line 2458】

/* list manipulation macros */#define InitializeListHead(le)  (void)((le)->Flink = (le)->Blink = (le))#define InsertHeadList(le,e)    do { PLIST_ENTRY f = (le)->Flink; (e)->Flink = f; (e)->Blink = (le); f->Blink = (e); (le)->Flink = (e); } while (0)#define InsertTailList(le,e)    do { PLIST_ENTRY b = (le)->Blink; (e)->Flink = (le); (e)->Blink = b; b->Flink = (e); (le)->Blink = (e); } while (0)#define IsListEmpty(le)         ((le)->Flink == (le))#define RemoveEntryList(e)      do { PLIST_ENTRY f = (e)->Flink, b = (e)->Blink; f->Blink = b; b->Flink = f; (e)->Flink = (e)->Blink = NULL; } while (0)static  __inline PLIST_ENTRY RemoveHeadList(PLIST_ENTRY le){    PLIST_ENTRY f, b, e;    e = le->Flink;    f = le->Flink->Flink;    b = le->Flink->Blink;    f->Blink = b;    b->Flink = f;    if (e != le) e->Flink = e->Blink = NULL;    return e;}static __inline PLIST_ENTRY RemoveTailList(PLIST_ENTRY le){    PLIST_ENTRY f, b, e;    e = le->Blink;    f = le->Blink->Flink;    b = le->Blink->Blink;    f->Blink = b;    b->Flink = f;    if (e != le) e->Flink = e->Blink = NULL;    return e;}