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 mul‐
tiple queues.
Any driver routine that manipulates these queues must call an appropri‐
ate 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)