Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.1 KiB

  1. /* queue.h */
  2. /*********************************/
  3. /* Definitions */
  4. /*********************************/
  5. #define QUEUE_MAGIC 0xBADD
  6. /*********************************/
  7. /* Structure Definitions */
  8. /*********************************/
  9. typedef struct {
  10. void *next; // Next element
  11. void *prev; // Previous element
  12. void *data; // Data
  13. } Element_t;
  14. typedef struct {
  15. Element_t *elem; // Next element to be returned
  16. } Iter_t;
  17. typedef struct {
  18. int magic; // Magic number
  19. Element_t *head; // Head of queue
  20. Element_t *tail; // End of queue
  21. long count; // Number of entries
  22. long mark; // Watermark
  23. } Queue_t;
  24. /*********************************/
  25. /* Function Definitions */
  26. /*********************************/
  27. Element_t *elementAlloc();
  28. void elementFree(Element_t *element);
  29. void queueInit (Queue_t *queue);
  30. Element_t *queueAdd (Queue_t *queue, Element_t *element);
  31. Element_t *queueRemove (Queue_t *queue, Element_t *element);
  32. void queueFree (Queue_t *queue);
  33. void iterInit (Queue_t *queue, Iter_t *iter);
  34. Element_t *queueIterate (Iter_t *iter);