void* vxworks_dlsym(ACE_SHLIB_HANDLE lib, char *szName) { SymbolIteratorStruct sis; sis.ptr = 0; sis.szName = szName; sis.lib = (MODULE_ID)lib; symEach(sysSymTbl, (FUNCPTR)SymbolIterator, (int)&sis); return sis.ptr; }
void* SharedLibraryImpl::findSymbolImpl(const std::string& name) { poco_assert (_moduleId != 0); FastMutex::ScopedLock lock(_mutex); MODULE_INFO mi; if (!moduleInfoGet(_moduleId, &mi)) return 0; SymLookup symLookup; symLookup.name = name.c_str(); symLookup.group = mi.group; symLookup.addr = 0; symEach(sysSymTbl, reinterpret_cast<FUNCPTR>(lookupFunc), reinterpret_cast<int>(&symLookup)); return symLookup.addr; }
void * dbgsysFindLibraryEntry(void *handle, const char *name) { MODULE_ID mid; MODULE_INFO mInfo; struct CallbackInfo info; SYMBOL *sym; mid = (MODULE_ID) handle; if (moduleInfoGet(mid, &mInfo) == ERROR) return NULL; info.name = (char *) name; info.group = (UINT16) mInfo.group; sym = symEach(sysSymTbl, (FUNCPTR) &findSymbolCB, (int) &info); if (sym == NULL) return NULL; return info.val; }