diff options
Diffstat (limited to 'src/lib/queue.c')
-rw-r--r-- | src/lib/queue.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/src/lib/queue.c b/src/lib/queue.c deleted file mode 100644 index 1fc35f6..0000000 --- a/src/lib/queue.c +++ /dev/null @@ -1,55 +0,0 @@ -#include <lib/queue.h> - -void push_to_queue(struct Entry* e, struct Queue* q) -{ - q->end.next->next = e; - q->end.next = e; - e->next = &q->end; -} - -void prepend_to_queue(struct Entry* e, struct Queue* q) -{ - e->next = q->start.next; - q->start.next = e; - if (e->next->entry_type == END_ENTRY) - q->end.next = e; -} - -struct Entry* pop_from_queue(struct Queue* q) -{ - if (q->start.next->entry_type == END_ENTRY) - return 0; - struct Entry* e = q->start.next; - q->start.next = e->next; - if (e->next->entry_type == END_ENTRY) - q->end.next = &q->start; - return e; -} - -struct Entry* remove_next_from_queue(struct Entry* e) -{ - struct Entry* prev = e; - struct Entry* remove = e->next; - struct Entry* next = remove->next; - if (remove->entry_type != VALUE_ENTRY) - return 0; - prev->next = next; - if (next->entry_type == END_ENTRY) - next->next = prev; - return remove; -} - -struct Entry* find_value(void* value, struct Queue* q) -{ - struct Entry* prev; - struct Entry* entry; - prev = &q->start; - entry = prev->next; - while (entry->entry_type != END_ENTRY) { - if (entry->value == value) - return prev; - prev = entry; - entry = prev->next; - } - return 0; -} |