freebsd-dev/contrib/gdb/libiberty/insque.c
Paul Traina 7929041ebe Import GDB in its full glory (all 25mb). We'll put it on a diet once it's
fully registered.

(This is the second try, the first import ignored .info files but not .info-*
 files, for some reason.  I'm going to make this consistent.)

Reviewed by:	core
Approved for:	2.2
1996-11-03 17:03:03 +00:00

51 lines
930 B
C

/* insque(3C) routines
This file is in the public domain. */
/*
NAME
insque, remque -- insert, remove an element from a queue
SYNOPSIS
struct qelem {
struct qelem *q_forw;
struct qelem *q_back;
char q_data[];
};
void insque (struct qelem *elem, struct qelem *pred)
void remque (struct qelem *elem)
DESCRIPTION
Routines to manipulate queues built from doubly linked lists.
The insque routine inserts ELEM in the queue immediately after
PRED. The remque routine removes ELEM from its containing queue.
*/
struct qelem {
struct qelem *q_forw;
struct qelem *q_back;
};
void
insque (elem, pred)
struct qelem *elem;
struct qelem *pred;
{
elem -> q_forw = pred -> q_forw;
pred -> q_forw -> q_back = elem;
elem -> q_back = pred;
pred -> q_forw = elem;
}
void
remque (elem)
struct qelem *elem;
{
elem -> q_forw -> q_back = elem -> q_back;
elem -> q_back -> q_forw = elem -> q_forw;
}