1 /* Header for queue management module */
\r
5 struct queuelem { qelem elem;
\r
6 struct queuelem *next;
\r
8 typedef struct queuelem *queue;
\r
11 #ifndef NO_PROTOTYPES
\r
13 stack push(stack,selem);
\r
14 qelem qfront(queue);
\r
15 queue qremove(queue);
\r
16 queue qdelete(queue,qelem);
\r
17 queue qrotate(queue);
\r
29 #define qinsert(q, e) (((queue) push((stack) (q), (selem) (e)))->next)
\r
30 #define qempty(q) ((q) == NULL)
\r
31 #define pinsert(q, p) (qinsert(q, (qelem) (p)))
\r
32 #define pfront(q) ((word) qfront(q))
\r
33 #define minsert(q, m) (qinsert(q, (qelem) (m)))
\r
34 #define mfront(q) ((message *) qfront(q))
\r
35 #define mdelete(q, m) (qdelete(q, (qelem) (m)))
\r
36 #define mpush(q, m) ((queue) push((stack) q, (selem) m))
\r
37 #define sfree(s) qfree((queue) s)
\r
39 #define pop(s) ((stack) qremove((queue) s))
\r
40 #define top(s) ((selem) qfront((queue) s))
\r