xref: /freebsd/lib/libc/stdlib/remque.c (revision 559a218c9b257775fb249b67945fe4a05b7a6b9f)
1e768c1beSRobert Drehmel /*
2e768c1beSRobert Drehmel  * Initial implementation:
3e768c1beSRobert Drehmel  * Copyright (c) 2002 Robert Drehmel
4e768c1beSRobert Drehmel  * All rights reserved.
5e768c1beSRobert Drehmel  *
6e768c1beSRobert Drehmel  * As long as the above copyright statement and this notice remain
7e768c1beSRobert Drehmel  * unchanged, you can do what ever you want with this file.
8e768c1beSRobert Drehmel  */
9e768c1beSRobert Drehmel #define	_SEARCH_PRIVATE
10e768c1beSRobert Drehmel #include <search.h>
11e768c1beSRobert Drehmel #include <stdlib.h>	/* for NULL */
12e768c1beSRobert Drehmel 
1333c0e6efSTim J. Robbins void
remque(void * element)1433c0e6efSTim J. Robbins remque(void *element)
15e768c1beSRobert Drehmel {
16e768c1beSRobert Drehmel 	struct que_elem *prev, *next, *elem;
17e768c1beSRobert Drehmel 
18e768c1beSRobert Drehmel 	elem = (struct que_elem *)element;
19e768c1beSRobert Drehmel 
20e768c1beSRobert Drehmel 	prev = elem->prev;
21e768c1beSRobert Drehmel 	next = elem->next;
22e768c1beSRobert Drehmel 
23e768c1beSRobert Drehmel 	if (prev != NULL)
24e768c1beSRobert Drehmel 		prev->next = next;
25e768c1beSRobert Drehmel 	if (next != NULL)
26e768c1beSRobert Drehmel 		next->prev = prev;
27e768c1beSRobert Drehmel }
28