1 /* Copyright (C) 1992, 1995, 1996 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Library General Public License as
6    published by the Free Software Foundation; either version 2 of the
7    License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Library General Public License for more details.
13 
14    You should have received a copy of the GNU Library General Public
15    License along with the GNU C Library; see the file COPYING.LIB.  If not,
16    see <http://www.gnu.org/licenses/>.  */
17 
18 #include <features.h>
19 #include <stddef.h>
20 #include <search.h>
21 
22 #ifdef L_insque
23 
24 /* Insert ELEM into a doubly-linked list, after PREV.  */
25 
26 void
insque(void * elem,void * prev)27 insque (void *elem, void *prev)
28 {
29   if (prev == NULL)
30     {
31       ((struct qelem *) elem)->q_forw = NULL;
32       ((struct qelem *) elem)->q_back = NULL;
33     }
34   else
35     {
36       struct qelem *next = ((struct qelem *) prev)->q_forw;
37       ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
38       if (next != NULL)
39         next->q_back = (struct qelem *) elem;
40       ((struct qelem *) elem)->q_forw = next;
41       ((struct qelem *) elem)->q_back = (struct qelem *) prev;
42     }
43 }
44 
45 #endif
46 
47 #ifdef L_remque
48 /* Unlink ELEM from the doubly-linked list that it is in.  */
49 
50 void
remque(void * elem)51 remque (void *elem)
52 {
53   struct qelem *next = ((struct qelem *) elem)->q_forw;
54   struct qelem *prev = ((struct qelem *) elem)->q_back;
55   if (next != NULL)
56     next->q_back = prev;
57   if (prev != NULL)
58     prev->q_forw = (struct qelem *) next;
59 }
60 
61 #endif
62