/************************************* | |
* Queue.h | |
**************************************/ | |
#ifndef __QUEUE_H__ | |
#define __QUEUE_H__ | |
#define ENQUEUEPACKET(_Head, _Tail, _Packet) \ | |
do { \ | |
if (!_Head) { \ | |
_Head = _Packet; \ | |
} \ | |
else { \ | |
(_Tail)->next = _Packet; \ | |
} \ | |
(_Packet)->next = NULL; \ | |
_Tail = _Packet; \ | |
} while (0) | |
#define DEQUEUEPACKET(Head, Tail) \ | |
do { \ | |
if (Head) { \ | |
if (!Head->next) { \ | |
Tail = NULL; \ | |
} \ | |
Head = Head->next; \ | |
} \ | |
} while (0) | |
#endif /* __QUEUE_H__ */ |