xref: /aosp_15_r20/external/musl/src/search/insque.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <search.h>
2*c9945492SAndroid Build Coastguard Worker 
3*c9945492SAndroid Build Coastguard Worker struct node {
4*c9945492SAndroid Build Coastguard Worker 	struct node *next;
5*c9945492SAndroid Build Coastguard Worker 	struct node *prev;
6*c9945492SAndroid Build Coastguard Worker };
7*c9945492SAndroid Build Coastguard Worker 
insque(void * element,void * pred)8*c9945492SAndroid Build Coastguard Worker void insque(void *element, void *pred)
9*c9945492SAndroid Build Coastguard Worker {
10*c9945492SAndroid Build Coastguard Worker 	struct node *e = element;
11*c9945492SAndroid Build Coastguard Worker 	struct node *p = pred;
12*c9945492SAndroid Build Coastguard Worker 
13*c9945492SAndroid Build Coastguard Worker 	if (!p) {
14*c9945492SAndroid Build Coastguard Worker 		e->next = e->prev = 0;
15*c9945492SAndroid Build Coastguard Worker 		return;
16*c9945492SAndroid Build Coastguard Worker 	}
17*c9945492SAndroid Build Coastguard Worker 	e->next = p->next;
18*c9945492SAndroid Build Coastguard Worker 	e->prev = p;
19*c9945492SAndroid Build Coastguard Worker 	p->next = e;
20*c9945492SAndroid Build Coastguard Worker 	if (e->next)
21*c9945492SAndroid Build Coastguard Worker 		e->next->prev = e;
22*c9945492SAndroid Build Coastguard Worker }
23*c9945492SAndroid Build Coastguard Worker 
remque(void * element)24*c9945492SAndroid Build Coastguard Worker void remque(void *element)
25*c9945492SAndroid Build Coastguard Worker {
26*c9945492SAndroid Build Coastguard Worker 	struct node *e = element;
27*c9945492SAndroid Build Coastguard Worker 
28*c9945492SAndroid Build Coastguard Worker 	if (e->next)
29*c9945492SAndroid Build Coastguard Worker 		e->next->prev = e->prev;
30*c9945492SAndroid Build Coastguard Worker 	if (e->prev)
31*c9945492SAndroid Build Coastguard Worker 		e->prev->next = e->next;
32*c9945492SAndroid Build Coastguard Worker }
33