/* ******************************************************************************* * 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_017.c,v $ * $Author: mpoole $ * $Date: 2002/10/07 09:37:36 $ * $Revision: 1.2 $ * ******************************************************************************* * * Change History * * $Log: bpo_l_017.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_017.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 ------------------------------------------------------------------ */ int bpo_Walk_List2( bpo_List_t *l_ptr, bpo_Walk_List2_t disp, void *param ) { bpo_Node_t *n_ptr,*nn_ptr; int rv = 0; char *seg_base; seg_base = Get_SODB_Base( l_ptr ); bpo_pid_Lock( &l_ptr->lno_Pid_Lock ); n_ptr = GANNODE( seg_base, l_ptr->lno_Head.lno_Succ ); while (n_ptr->lno_Succ && rv==0 ) { /* save the next pointer just in case they mash the list */ nn_ptr = GANNODE( seg_base, n_ptr->lno_Succ); rv = (*disp)( GRPTR( n_ptr, n_ptr->lno_Item ), param ); if (n_ptr == nn_ptr) break; n_ptr = nn_ptr; }; bpo_pid_Unlock( &l_ptr->lno_Pid_Lock ); return(rv); } /* -- End of File -- */