ack/mach/proto/top/queue.c
George Koehler 0576641cae Reduce clang warnings from top
Also add `static` and remove `register` in mach/proto/top/top.c.  A
static function is only in one file, so its function declaration may
go in that file, instead of a header file.
2019-10-30 18:36:55 -04:00

70 lines
1.2 KiB
C

/* $Id$ */
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
#include "top.h"
#include "queue.h"
void empty_queue(queue q)
{
q->head = q->tail = (instr_p) 0;
q->qlen = 0;
}
int empty(queue q)
{
return q->qlen == 0;
}
void remove_head(queue q)
{
if ( (q->head = q->head->fw) == (instr_p) 0) {
q->tail = (instr_p) 0;
} else {
q->head->bw = (instr_p) 0;
}
q->qlen--;
}
void add(queue q, instr_p instr)
{
if (q->qlen++ == 0) {
q->head = q->tail = instr;
instr->bw = (instr_p) 0;
} else {
q->tail->fw = instr;
instr->bw = q->tail;
q->tail = instr;
}
instr->fw = (instr_p) 0;
}
void insert(queue q, instr_p instr)
{
if (q->qlen++ == 0) {
q->head = q->tail = instr;
instr->fw = (instr_p) 0;
} else {
q->head->bw = instr;
instr->fw = q->head;
q->head = instr;
}
instr->bw = (instr_p) 0;
}
void join_queues(queue q1, queue q2)
{
if (q1->qlen > 0) {
q2->qlen += q1->qlen;
q1->tail->fw = q2->head;
if (q2->qlen > 0) {
q2->head->bw = q1->tail;
} else {
q2->tail = q1->tail;
}
q2->head = q1->head;
empty_queue(q1);
}
}