insque(9r) insque(9r)
NAME
insque, remque - General: Add or remove an element from the queue
SYNOPSIS
struct generic_qheader {
struct generic_qheader *q_forw;
struct generic_qheader *q_back;
};
int insque(
struct generic_qheader *elem,
struct generic_qheader *pred ); int remque(
struct generic_qheader *elem );
ARGUMENTS
Specifies the address of the queue header that contains the element to be manipulated. Specifies the address of the queue header that con-
tains the element to precede the one specified by elem in the queue.
DESCRIPTION
The insque routine adds the element that the elem argument specifies to the queue. The routine inserts elem in the next position after pred
in the queue.
The remque routine removes the element that the elem argument specifies from the queue it is currently in.
Queues are built from doubly linked lists. Each element is linked into the queue through a queue header. All queue headers are of the
generic form struct generic_qheader. A given element may have multiple queue headers. This allows each element to be simultaneously linked
onto multiple queues.
Any driver routine that manipulates these queues must call an appropriate spl routine to ensure that the spl level is high enough to block
out any interrupts for other kernel modules that may access these queues.
RETURN VALUES
None
SEE ALSO
Routines: spl(9r)
insque(9r)