/* ******************************************************************************* * Copyright (c) 1996 Martin Poole * ******************************************************************************* ** ** WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! ** ** Any changes to be made to this file should first be checked with ** mplib1 source control for library integrity. ** ** mplib1 source control can be reached at mplib1@quatermass.co.uk ** * * $Source: /home/cvs/cvsroot/onelan/onelan/src/mplib1/libsrc/bpo_l_007.c,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:36 $ * $Revision: 1.2 $ * ******************************************************************************* * * Change History * * $Log: bpo_l_007.c,v $ * Revision 1.2 2002/10/07 09:37:36 mpoole * Initial checkin of mplib1-3.1.0 * * Revision 1.1 2002/10/07 09:36:53 mpoole * Initial checkin of mplib1-3.1.0 * * ******************************************************************************* */ #ident "$Header: /home/cvs/cvsroot/onelan/onelan/src/mplib1/libsrc/bpo_l_007.c,v 1.2 2002/10/07 09:37:36 mpoole Exp $" /* ------------------------------------------------------------------ Include files ------------------------------------------------------------------ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* ------------------------------------------------------------------ defines ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ Code starts here ------------------------------------------------------------------ */ bpo_Node_t * bpo_Add_Node_Before( bpo_Node_t *node1, bpo_Node_t *node2 ) { bpo_List_t *lp; if (Get_SODB_Base( node1 ) != Get_SODB_Base( node2 )) return(NULL); lp = GRPTR( node1, node1->lno_List ); if (lp && lp->lno_me==node1->lno_List) { bpo_pid_Lock( &lp->lno_Pid_Lock ); if (node1->lno_Pred && node2->lno_Pred==(off_t)0) { node2->lno_Succ = node1->lno_me; node2->lno_Pred = node1->lno_Pred; GNNODE( node1, node1->lno_Pred)->lno_Succ = node2->lno_me; node1->lno_Pred = node2->lno_me; node2->lno_List = node1->lno_List; lp->lno_count++; lp->lno_serial_nbr++; } bpo_pid_Unlock( &lp->lno_Pid_Lock ); } return(node2); } /* -- End of File -- */