30 lines
546 B
C
30 lines
546 B
C
/*************************************
|
|
* 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__ */
|