1105245Srobert/* 2105245Srobert * Initial implementation: 3105245Srobert * Copyright (c) 2002 Robert Drehmel 4105245Srobert * All rights reserved. 5105245Srobert * 6105245Srobert * As long as the above copyright statement and this notice remain 7105245Srobert * unchanged, you can do what ever you want with this file. 8105245Srobert */ 9105245Srobert#include <sys/cdefs.h> 10105245Srobert__FBSDID("$FreeBSD$"); 11105245Srobert 12105245Srobert#define _SEARCH_PRIVATE 13105245Srobert#include <search.h> 14105245Srobert#ifdef DEBUG 15105245Srobert#include <stdio.h> 16105245Srobert#else 17105245Srobert#include <stdlib.h> /* for NULL */ 18105245Srobert#endif 19105245Srobert 20108644Stjrvoid 21108644Stjrinsque(void *element, void *pred) 22105245Srobert{ 23105245Srobert struct que_elem *prev, *next, *elem; 24105245Srobert 25105245Srobert elem = (struct que_elem *)element; 26105245Srobert prev = (struct que_elem *)pred; 27105245Srobert 28105245Srobert if (prev == NULL) { 29105245Srobert elem->prev = elem->next = NULL; 30105245Srobert return; 31105245Srobert } 32105245Srobert 33105245Srobert next = prev->next; 34105245Srobert if (next != NULL) { 35105245Srobert#ifdef DEBUG 36105245Srobert if (next->prev != prev) { 37105245Srobert fprintf(stderr, "insque: Inconsistency detected:" 38105245Srobert " next(%p)->prev(%p) != prev(%p)\n", 39105245Srobert next, next->prev, prev); 40105245Srobert } 41105245Srobert#endif 42105245Srobert next->prev = elem; 43105245Srobert } 44105245Srobert prev->next = elem; 45105245Srobert elem->prev = prev; 46105245Srobert elem->next = next; 47105245Srobert} 48