#ifndef MPLIB1_MINLIST #define MPLIB1_MINLIST /* ******************************************************************************* * 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/mplib1/min_list.h,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:44 $ * $Revision: 1.2 $ * Purpose : Min List/Node definitions * ******************************************************************************* * * Change History * * $Log: min_list.h,v $ * Revision 1.2 2002/10/07 09:37:44 mpoole * Initial checkin of mplib1-3.1.0 * * Revision 1.1 2002/10/07 09:37:00 mpoole * Initial checkin of mplib1-3.1.0 * * ******************************************************************************* */ #ident "$Header: /home/cvs/cvsroot/onelan/onelan/src/mplib1/mplib1/min_list.h,v 1.2 2002/10/07 09:37:44 mpoole Exp $" struct Min_Node { struct Min_Node *ln_Succ; struct Min_Node *ln_Pred; }; struct Min_List { struct Min_Node ln_Head; struct Min_Node ln_Tail; }; typedef struct Min_Node Min_Node; typedef struct Min_List Min_List; #define MIN_NODE_SIZE sizeof(struct Min_Node) #define MIN_LIST_SIZE sizeof(struct Min_List) #define INIT_MIN_NODE(node) { node->ln_Succ=NULL;node->ln_Pred=NULL; } #define ADD_MIN_AFTER(n1,n2) {(n2)->ln_Pred = (n1);(n2)->ln_Succ = (n1)->ln_Succ;(n1)->ln_Succ->ln_Pred = (n2);(n1)->ln_Succ = (n2); } #define ADD_MIN_BEFORE(n1,n2) {(n2)->ln_Pred = (n1);(n2)->ln_Succ = (n1)->ln_Succ;(n1)->ln_Succ->ln_Pred = (n2);(n1)->ln_Succ = (n2); } extern int Init_Min_List( Min_List *list ); extern int Init_Min_Node( Min_Node *node ); extern int Remove_Min_Node ( Min_Node *node ); extern int Add_To_Min_Head ( Min_List *list, Min_Node *node ); extern int Add_To_Min_Tail ( Min_List *list, Min_Node *node ); extern int Add_Min_After ( Min_Node *node1, Min_Node *node2 ); extern int Add_Min_Before ( Min_Node *node1, Min_Node *node2 ); #endif /* -- End of File -- */