/* * DelOneLib - called when dynamic linker is deleting a library. Unfortunately * we don't get told which library, so we just have to zip through our list * until we find out which one is suddenly missing. */ static int RemoveLibrary( pid_t pid, struct link_map *first_lmap ) { int count = 0; int i; addr_off dyn_base; for( i = 0; i < ModuleTop; ++i ) { dyn_base = ModuleInfo[i].dbg_dyn_sect; if( dyn_base != 0 ) { if( FindLibInLinkMap( pid, first_lmap, dyn_base ) == NULL ) { DoRemoveLib( dyn_base ); } } } return( count ); }
/* * DelOneLib - called when dynamic linker is deleting a library. Unfortunately * we don't get told which library, so we just have to zip through our list * until we find out which one is suddenly missing. */ int DelOneLib( struct link_map *first_lmap ) { int count = 0; int i; addr_off dyn_base; for( i = 0; i < ModuleTop; ++i ) { dyn_base = moduleInfo[i].dbg_dyn_sect; if( dyn_base != 0 ) { if( FindLibInLinkMap( first_lmap, dyn_base ) == NULL ) { DelLib( dyn_base ); } } } return( count ); }