INSQUE(3)           Linux Programmer's Manual           INSQUE(3)

       insque, remque - insert/remove an item from a queue

       #include <stdlib.h>

       void insque(struct qelem *elem, struct qelem *prev);
       void remque(struct qelem *elem);

       insque()  and  remque()  are  functions  for  manipulating
       queues made from doubly-linked  lists.   Each  element  in
       this list is of type struct qelem

       The qelem structure is defined as

              struct qelem {
                  struct    qelem *q_forw;
                  struct    qelem *q_back;
                  char      q_data[1];

       insque()  inserts  the  element pointed to by elem immedi-
       ately after the element pointed to by prev, which must NOT
       be NULL.

       remque()  removes  the element pointed to by elem from the
       doubly-linked list.


       The q_data field is sometimes defined to be type  char  *,
       and  under solaris 2.x, it doesn't appear to exist at all.

       The location of the prototypes for these functions  differ
       among  several  versions of UNIX.  Some systems place them
       in <search.h>, others in <string.h>.  Linux places them in
       <stdlib.h> since that seems to make the most sense.

       Some  versions  of  UNIX (like HP-UX 10.x) do not define a
       struct qelem but rather have the arguments to insque() and
       remque() be of type void *.

GNU                      October 30, 1996                       1