#ifndef __LIST__
#define __LIST__

#undef _LIST_ENTRY

typedef struct _LIST{
        struct _LIST *Flink;
        struct _LIST *Blink;
}LIST, *PLIST;

#define InitializeListHead(ListHead) (\
    (ListHead)->Flink = (ListHead)->Blink = (ListHead))

#define IsLastEntry(ListHead, List)    (\
        (List)->Next == ListHead))
        
    
PLIST
RemoveHeadList(
    IN PLIST ListHead
    );

VOID
InsertTailList(
    IN PLIST ListHead,
    IN PLIST Entry
    );

VOID    RemoveList(__in PVOID list);       
#endif
