4 * Revision 1.1 2001/04/04 05:43:36 wang
5 * First commit: compiles on Linux, Amiga, Windows, Windows CE, generic gcc
7 * Revision 1.1 1998/07/02 17:35:50 bnv
17 /* ============= type definitions ================= */
18 typedef struct dequeue_elem_st
{
20 struct dequeue_elem_st
*prev
, *next
;
29 #define DQINIT(q) {(q).items=0; (q).head=NULL; (q).tail=NULL;}
30 #define DQQUEUE(q,s) DQAdd2Head(q,s)
31 #define DQPUSH(q,s) DQAdd2Tail(q,s)
32 #define DQDELLAST(q) DQDel(q,q->tail)
33 #define DQDELFIRST(q) DQDel(q,q->head)
34 #define DQPEEK(q) (((q)->tail)->dat)
36 /* ============= function prototypes ============= */
37 void DQAdd2Head( DQueue
*queue
, void *dat
);
38 void DQAdd2Tail( DQueue
*queue
, void *dat
);
39 void *DQPop( DQueue
*queue
);
40 void DQDel( DQueue
*queue
, DQueueElem
*elem
);
41 void DQFlush( DQueue
*queue
, void (freefunc
)(void *dat
) );
43 /*DQueueElem * DQFind( DQueue *queue, PLstr str );*/