Lines Matching defs:dlInfo

170 STATIC INT32 OsReadEhdr(INT32 fd, UINT32 fileLen, DynLinkInfo *dlInfo)

174 ret = OsReadELFInfo(fd, (UINT8 *)&dlInfo->elfEhdr, sizeof(LD_ELF_EHDR), 0);
179 ret = OsVerifyEhdr(&dlInfo->elfEhdr, fileLen);
187 STATIC INT32 OsReadPhdrs(INT32 fd, UINT32 fileLen, DynLinkInfo *dlInfo)
191 LD_ELF_EHDR *ehdr = &dlInfo->elfEhdr;
202 dlInfo->elfPhdr = (LD_ELF_PHDR *)LOS_MemAlloc(OS_SYS_MEM_ADDR, size);
203 if (dlInfo->elfPhdr == NULL) {
207 ret = OsReadELFInfo(fd, (UINT8 *)dlInfo->elfPhdr, size, ehdr->e_phoff);
209 LOS_MemFree(OS_SYS_MEM_ADDR, dlInfo->elfPhdr);
243 dso->dlInfo = (DynLinkInfo *)LOS_MemAlloc(OS_SYS_MEM_ADDR, sizeof(DynLinkInfo));
244 if (dso->dlInfo == NULL) {
250 (VOID)memset_s(dso->dlInfo, sizeof(DynLinkInfo), 0, sizeof(DynLinkInfo));
264 ret = OsReadEhdr(dso->fd, fileLen, dso->dlInfo);
270 ret = OsReadPhdrs(dso->fd, fileLen, dso->dlInfo);
287 LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo);
292 STATIC INT32 OsReserveSpace(const DynLinkInfo *dlInfo, UINT32 *boundary)
294 const LD_ELF_PHDR *elfPhdrTemp = dlInfo->elfPhdr;
295 INT32 phdrNum = dlInfo->elfEhdr.e_phnum;
352 DynLinkInfo *dlInfo = dso->dlInfo;
353 const LD_ELF_PHDR *elfPhdrTemp = dlInfo->elfPhdr;
354 const LD_ELF_EHDR *elfEhdr = &dlInfo->elfEhdr;
390 loadSize = OsReserveSpace(dso->dlInfo, &boundary);
414 DynLinkInfo *dlInfo = dso->dlInfo;
415 const LD_ELF_PHDR *elfPhdrTemp = dlInfo->elfPhdr;
416 INT32 phdrNum = dlInfo->elfEhdr.e_phnum;
423 dlInfo->dynBase = dso->loadBase + elfPhdrTemp->p_vaddr;
433 DynLinkInfo *dlInfo = dso->dlInfo;
434 RelocInfoTab *relInfoTab = &dlInfo->relInfoTab;
436 for (dyn = (LD_ELF_DYN *)dlInfo->dynBase; dyn->d_tag != DT_NULL; ++dyn) {
445 dlInfo->hashTab = (UINT32 *)(dso->loadBase + dyn->d_un.d_ptr);
448 dlInfo->symTab = (LD_ELF_SYM *)(dso->loadBase + dyn->d_un.d_ptr);
451 dlInfo->symStrings = (CHAR *)(dso->loadBase + dyn->d_un.d_ptr);
503 STATIC LD_ELF_SYM *OsFindSymInDso(const DynLinkInfo *dlInfo, const CHAR *name)
505 LD_ELF_SYM *symTab = dlInfo->symTab;
507 CHAR *symStr = dlInfo->symStrings;
508 UINT32 *hashTab = dlInfo->hashTab;
561 DynLinkInfo *dlInfo = dso->dlInfo;
562 CHAR *symStrings = dlInfo->symStrings;
564 LD_ELF_SYM *symTab = dlInfo->symTab;
571 if ((symInDso = OsFindSymInDso(dlInfo, symStr)) != NULL) {
641 DynLinkInfo *dlInfo = dso->dlInfo;
642 RelocInfo *relInfo = (RelocInfo *)&dlInfo->relInfoTab;
685 LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr);
686 dso->dlInfo->elfPhdr = NULL;
693 DynLinkInfo *dlInfo = dso->dlInfo;
696 for (dyn = (LD_ELF_DYN *)dlInfo->dynBase; dyn->d_tag != DT_NULL; ++dyn) {
797 (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr);
798 (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo);
833 sym = OsFindSymInDso(dso->dlInfo, name);
900 if (dso->dlInfo != NULL) {
901 (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr);
903 (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo);