gonzui


Format: Advanced Search

t2ex/bsd_source/lib/libc/src_bsd/search/insque.cbare sourcepermlink (0.00 seconds)

Search this content:

    1: /*      $OpenBSD: insque.c,v 1.2 2005/08/08 08:05:36 espie Exp $     */
    2: 
    3: /*
    4:  *  Copyright (c) 1993 John Brezak
    5:  *  All rights reserved.
    6:  * 
    7:  *  Redistribution and use in source and binary forms, with or without
    8:  *  modification, are permitted provided that the following conditions
    9:  *  are met:
   10:  *  1. Redistributions of source code must retain the above copyright
   11:  *     notice, this list of conditions and the following disclaimer.
   12:  *  2. Redistributions in binary form must reproduce the above copyright
   13:  *     notice, this list of conditions and the following disclaimer in the
   14:  *     documentation and/or other materials provided with the distribution.
   15:  *  3. The name of the author may be used to endorse or promote products
   16:  *     derived from this software without specific prior written permission.
   17:  * 
   18:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR
   19:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   20:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   21:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
   22:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   23:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   24:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   26:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
   27:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   28:  * POSSIBILITY OF SUCH DAMAGE.
   29:  */
   30: 
   31: #include <search.h>
   32: #include <stdlib.h>     /* for NULL */
   33: 
   34: struct qelem {
   35:         struct qelem *q_forw;
   36:         struct qelem *q_back;
   37: };
   38: 
   39: void
   40: insque(void *entry, void *pred)
   41: {
   42:         struct qelem *e = (struct qelem *) entry;
   43:         struct qelem *p = (struct qelem *) pred;
   44: 
   45:         if (p == NULL) {
   46:                 e->q_forw = e->q_back = NULL;
   47:         } else {
   48:                 e->q_back = p;
   49:                 if ((e->q_forw = p->q_forw) != NULL) {
   50:                         p->q_forw->q_back = e;
   51:                 }
   52:                 p->q_forw = e;
   53:         }
   54: }
   55: