/* ******************************************************************************* * 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/min_list.c,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:39 $ * $Revision: 1.2 $ * Purpose : min list handling * ******************************************************************************* * * Change History * * $Log: min_list.c,v $ * Revision 1.2 2002/10/07 09:37:39 mpoole * Initial checkin of mplib1-3.1.0 * * Revision 1.1 2002/10/07 09:36:57 mpoole * Initial checkin of mplib1-3.1.0 * * ******************************************************************************* */ #ident "$Header: /home/cvs/cvsroot/onelan/onelan/src/mplib1/libsrc/min_list.c,v 1.2 2002/10/07 09:37:39 mpoole Exp $" /* ------------------------------------------------------------------ Include files ------------------------------------------------------------------ */ #include #include /* ------------------------------------------------------------------ defines ------------------------------------------------------------------ */ #ifndef NULL #define NULL ((void *)0) #endif /* ------------------------------------------------------------------ Code starts here ------------------------------------------------------------------ */ int Init_Min_Node( Min_Node *node ) { INIT_MIN_NODE(node); return(0); } int Init_Min_List( Min_List *list ) { list->ln_Head.ln_Pred = NULL; list->ln_Head.ln_Succ = &list->ln_Tail; list->ln_Tail.ln_Pred = &list->ln_Head; list->ln_Tail.ln_Succ = NULL; return(0); } int Remove_Min_Node ( Min_Node *node ) { if (node->ln_Succ) node->ln_Succ->ln_Pred = node->ln_Pred; if (node->ln_Pred) node->ln_Pred->ln_Succ = node->ln_Succ; return(0); } int Add_To_Min_Head ( Min_List *list, Min_Node *node ) { /* First remove node from previous list (if any) */ Remove_Min_Node( node ); /* Now set up Node in new position */ ADD_MIN_AFTER( &list->ln_Head, node ); return(0); } int Add_To_Min_Tail ( Min_List *list, Min_Node *node ) { /* First remove node from previous list (if any) */ Remove_Min_Node( node ); /* Now set up Node in new position */ ADD_MIN_BEFORE( &list->ln_Tail, node ); return(0); } int Add_Min_After ( Min_Node *node1, Min_Node *node2 ) { /* First remove node from previous list (if any) */ Remove_Min_Node( node2 ); /* Now set up Node in new position */ ADD_MIN_AFTER( node1, node2 ); return(0); } int Add_Min_Before ( Min_Node *node1, Min_Node *node2 ) { /* First remove node from previous list (if any) */ Remove_Min_Node( node2 ); /* Now set up Node in new position */ ADD_MIN_BEFORE( node1, node2 ); return(0); } /* -- End of File -- */