1 /* qsub.c some routines for building queues */ 2 3 4 #include "qsubs.h" 5 6 /* puts elements of the structure into squeue if there is room */ 7 enqueue(cur,nm,state)8enqueue(cur,nm,state) 9 char *cur, *nm; 10 int state; 11 { 12 int nhead; 13 if (head<qlength-1) nhead=head+1; else nhead=0; 14 if (nhead == tail) return -1; 15 squeue[head].current = cur; 16 squeue[head].name = nm; 17 squeue[head].qstate = state; 18 head = nhead; 19 return 0; 20 } 21 dequeue()22struct queue *dequeue() 23 { 24 struct queue *tptr; 25 if (head==tail) return 0; 26 27 tptr = &squeue[tail]; 28 if (tail<qlength-1) tail++ ; else tail=0; 29 return tptr; 30 } 31