Queue.h 546 B

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