Current Path : /usr/src/lib/libc/stdlib/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/src/lib/libc/stdlib/insque.c |
/* * Initial implementation: * Copyright (c) 2002 Robert Drehmel * All rights reserved. * * As long as the above copyright statement and this notice remain * unchanged, you can do what ever you want with this file. */ #include <sys/cdefs.h> __FBSDID("$FreeBSD: release/9.1.0/lib/libc/stdlib/insque.c 108644 2003-01-04 07:34:41Z tjr $"); #define _SEARCH_PRIVATE #include <search.h> #ifdef DEBUG #include <stdio.h> #else #include <stdlib.h> /* for NULL */ #endif void insque(void *element, void *pred) { struct que_elem *prev, *next, *elem; elem = (struct que_elem *)element; prev = (struct que_elem *)pred; if (prev == NULL) { elem->prev = elem->next = NULL; return; } next = prev->next; if (next != NULL) { #ifdef DEBUG if (next->prev != prev) { fprintf(stderr, "insque: Inconsistency detected:" " next(%p)->prev(%p) != prev(%p)\n", next, next->prev, prev); } #endif next->prev = elem; } prev->next = elem; elem->prev = prev; elem->next = next; }