MP6 Parallel Make
|
00001 00002 #ifndef __QUEUE_H__ 00003 #define __QUEUE_H__ 00004 00008 /*struct queue_node { 00009 void *item; ///<Stored value 00010 struct queue_node *next; ///<Link to next node 00011 };*/ 00012 00016 typedef struct { 00017 struct queue_node *head; 00018 struct queue_node *tail; 00019 unsigned int size; 00020 } queue_t; 00021 00022 void queue_init(queue_t *q); 00023 void queue_destroy(queue_t *q); 00024 00025 void *queue_dequeue(queue_t *q); 00026 void *queue_at(queue_t *q, int pos); 00027 void *queue_remove_at(queue_t *q, int pos); 00028 void queue_enqueue(queue_t *q, void *item); 00029 unsigned int queue_size(queue_t *q); 00030 00031 void queue_iterate(queue_t *q, void (*iter_func)(void *, void *), void *arg); 00032 00033 #endif