adjust to match the uname changes.
[AROS-Contrib.git] / rexx / inc / dqueue.h
blob17ed55a1d2a428ca164b018a9bc26923b2ec2f0d
1 /*
2 * $Header$
3 * $Log$
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
8 * Initial revision
12 #ifndef __DEQUEUE_H__
13 #define __DEQUEUE_H__
15 #include <lstring.h>
17 /* ============= type definitions ================= */
18 typedef struct dequeue_elem_st {
19 void *dat;
20 struct dequeue_elem_st *prev, *next;
21 } DQueueElem;
23 typedef struct {
24 long items;
25 DQueueElem *head;
26 DQueueElem *tail;
27 } DQueue;
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 );*/
45 #endif