1 /************************************* 2 * Queue.h 3 **************************************/ 4 #ifndef __QUEUE_H__ 5 #define __QUEUE_H__ 6 7 8 9 #define ENQUEUEPACKET(_Head, _Tail, _Packet) \ 10 do { \ 11 if (!_Head) { \ 12 _Head = _Packet; \ 13 } \ 14 else { \ 15 (_Tail)->next = _Packet; \ 16 } \ 17 (_Packet)->next = NULL; \ 18 _Tail = _Packet; \ 19 } while (0) 20 #define DEQUEUEPACKET(Head, Tail) \ 21 do { \ 22 if (Head) { \ 23 if (!Head->next) { \ 24 Tail = NULL; \ 25 } \ 26 Head = Head->next; \ 27 } \ 28 } while (0) 29 #endif /* __QUEUE_H__ */ 30