Removed dummy GNU function declarations. Used coding style in queue
[vlp.git] / src / int / queue.h
1 /* Header for queue management module */
2
3 typedef lword qelem;
4 typedef qelem selem;
5 struct queuelem {
6         qelem elem;
7         struct queuelem *next;
8 };
9 typedef struct queuelem *queue;
10 typedef queue stack;
11
12 #ifndef NO_PROTOTYPES
13 queue qinit(void);
14 stack push(stack,selem);
15 qelem qfront(queue);
16 queue qremove(queue);
17 queue qdelete(queue,qelem);
18 queue qrotate(queue);
19 void qfree(queue);
20 #else
21 queue qinit();
22 stack push();
23 qelem qfront();
24 queue qremove();
25 queue qdelete();
26 queue qrotate();
27 void qfree();
28 #endif
29
30 #define qinsert(q, e)   (((queue) push((stack) (q), (selem) (e)))->next)
31 #define qempty(q)       ((q) == NULL)
32 #define pinsert(q, p)   (qinsert(q, (qelem) (p)))
33 #define pfront(q)       ((word) qfront(q))
34 #define minsert(q, m)   (qinsert(q, (qelem) (m)))
35 #define mfront(q)       ((message *) qfront(q))
36 #define mdelete(q, m)   (qdelete(q, (qelem) (m)))
37 #define mpush(q, m)     ((queue) push((stack) q, (selem) m))
38 #define sfree(s)        qfree((queue) s)
39 #define sinit           qinit
40 #define pop(s)          ((stack) qremove((queue) s))
41 #define top(s)          ((selem) qfront((queue) s))