Lines Matching refs:elElfDesc
45 extern ELAdrEntry* elGetAdrEntry( ELDesc* elElfDesc, const char* ent_name, ELObject** ExpObjEnt);
70 static BOOL ELi_BuildSymList( ELDesc* elElfDesc, u32 symsh_index);
149 void* ELi_CopyVeneerToBuffer( ELDesc* elElfDesc, ELObject* MYObject, u32 start, u32 data, s32 thres… in ELi_CopyVeneerToBuffer() argument
151 #pragma unused(elElfDesc) in ELi_CopyVeneerToBuffer()
157 if( (elElfDesc == i_eldesc_sim)&&(data == 0)) { in ELi_CopyVeneerToBuffer()
178 if( elElfDesc != i_eldesc_sim) { in ELi_CopyVeneerToBuffer()
189 elVenEnt = ELi_Malloc( elElfDesc, MYObject, sizeof( ELVeneer)); in ELi_CopyVeneerToBuffer()
195 …LOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, elVenEnt->adr, elVenEnt->data, (elElfDesc != i_eldesc_sim)… in ELi_CopyVeneerToBuffer()
209 void* ELi_CopyV4tVeneerToBuffer( ELDesc* elElfDesc, ELObject* MYObject, u32 start, u32 data, s32 th… in ELi_CopyV4tVeneerToBuffer() argument
211 #pragma unused(elElfDesc) in ELi_CopyV4tVeneerToBuffer()
217 if( (elElfDesc == i_eldesc_sim)&&(data == 0)) { in ELi_CopyV4tVeneerToBuffer()
237 if( elElfDesc != i_eldesc_sim) { in ELi_CopyV4tVeneerToBuffer()
248 elVenEnt = ELi_Malloc( elElfDesc, MYObject, sizeof( ELVeneer)); in ELi_CopyV4tVeneerToBuffer()
254 …LOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, elVenEnt->adr, elVenEnt->data, (elElfDesc != i_eldesc_sim)… in ELi_CopyV4tVeneerToBuffer()
265 void* ELi_CopySegmentToBuffer( ELDesc* elElfDesc, ELObject* MYObject, Elf32_Phdr* Phdr) in ELi_CopySegmentToBuffer() argument
271 if( elElfDesc != i_eldesc_sim) { in ELi_CopySegmentToBuffer()
273 if( elElfDesc->i_elReadStub( (void*)load_start, in ELi_CopySegmentToBuffer()
274 elElfDesc->FileStruct, in ELi_CopySegmentToBuffer()
275 (u32)(elElfDesc->ar_head), in ELi_CopySegmentToBuffer()
276 (u32)(elElfDesc->elf_offset)+(u32)(Phdr->p_offset), in ELi_CopySegmentToBuffer()
279 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_CANNOT_ACCESS_ELF); in ELi_CopySegmentToBuffer()
290 void* ELi_CopySectionToBuffer( ELDesc* elElfDesc, ELObject* MYObject, Elf32_Shdr* Shdr) in ELi_CopySectionToBuffer() argument
300 if( elElfDesc != i_eldesc_sim) { in ELi_CopySectionToBuffer()
302 if( elElfDesc->i_elReadStub( (void*)load_start, in ELi_CopySectionToBuffer()
303 elElfDesc->FileStruct, in ELi_CopySectionToBuffer()
304 (u32)(elElfDesc->ar_head), in ELi_CopySectionToBuffer()
305 (u32)(elElfDesc->elf_offset)+(u32)(Shdr->sh_offset), in ELi_CopySectionToBuffer()
308 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_CANNOT_ACCESS_ELF); in ELi_CopySectionToBuffer()
324 void* ELi_AllocSectionToBuffer( ELDesc* elElfDesc, ELObject* MYObject, Elf32_Shdr* Shdr) in ELi_AllocSectionToBuffer() argument
326 #pragma unused(elElfDesc) in ELi_AllocSectionToBuffer()
349 void ELi_GetPhdr( ELDesc* elElfDesc, u32 index, Elf32_Phdr* Phdr) in ELi_GetPhdr() argument
353 offset = (elElfDesc->CurrentEhdr.e_phoff) + in ELi_GetPhdr()
354 ((u32)(elElfDesc->CurrentEhdr.e_phentsize) * index); in ELi_GetPhdr()
356 (void)elElfDesc->i_elReadStub( Phdr, in ELi_GetPhdr()
357 elElfDesc->FileStruct, in ELi_GetPhdr()
358 (u32)(elElfDesc->ar_head), in ELi_GetPhdr()
359 (u32)(elElfDesc->elf_offset) + offset, in ELi_GetPhdr()
366 void ELi_GetShdr( ELDesc* elElfDesc, u32 index, Elf32_Shdr* Shdr) in ELi_GetShdr() argument
370 offset = (elElfDesc->CurrentEhdr.e_shoff) + ((u32)(elElfDesc->shentsize) * index); in ELi_GetShdr()
372 (void)elElfDesc->i_elReadStub( Shdr, in ELi_GetShdr()
373 elElfDesc->FileStruct, in ELi_GetShdr()
374 (u32)(elElfDesc->ar_head), in ELi_GetShdr()
375 (u32)(elElfDesc->elf_offset) + offset, in ELi_GetShdr()
382 void ELi_GetSent( ELDesc* elElfDesc, u32 index, void* entry_buf, u32 offset, u32 size) in ELi_GetSent() argument
386 ELi_GetShdr( elElfDesc, index, &Shdr); in ELi_GetSent()
388 (void)elElfDesc->i_elReadStub( entry_buf, in ELi_GetSent()
389 elElfDesc->FileStruct, in ELi_GetSent()
390 (u32)(elElfDesc->ar_head), in ELi_GetSent()
391 (u32)(elElfDesc->elf_offset) + (u32)(Shdr.sh_offset) + offset, in ELi_GetSent()
402 void ELi_GetEntry( ELDesc* elElfDesc, Elf32_Shdr* Shdr, u32 index, void* entry_buf) in ELi_GetEntry() argument
408 (void)elElfDesc->i_elReadStub( entry_buf, in ELi_GetEntry()
409 elElfDesc->FileStruct, in ELi_GetEntry()
410 (u32)(elElfDesc->ar_head), in ELi_GetEntry()
411 (u32)(elElfDesc->elf_offset) + offset, in ELi_GetEntry()
421 void ELi_GetStrAdr( ELDesc* elElfDesc, u32 strsh_index, u32 ent_index, char* str, u32 len) in ELi_GetStrAdr() argument
424 ELi_GetSent( elElfDesc, strsh_index, str, ent_index, len); in ELi_GetStrAdr()
450 BOOL ELi_RelocateSym( ELDesc* elElfDesc, ELObject* MYObject, u32 relsh_index) in ELi_RelocateSym() argument
472 ELi_GetShdr( elElfDesc, relsh_index, &RelOrRelaShdr); in ELi_RelocateSym()
475 TargetShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, RelOrRelaShdr.sh_info); in ELi_RelocateSym()
480 if(ELi_BuildSymList( elElfDesc, RelOrRelaShdr.sh_link) == FALSE) in ELi_RelocateSym()
483 SymShdr = &(elElfDesc->SymShdr); in ELi_RelocateSym()
491 ELi_GetEntry( elElfDesc, &RelOrRelaShdr, i, &CurrentRela); in ELi_RelocateSym()
499 CurrentSymEx = (ELSymEx*)(elElfDesc->SymExTbl[ELF32_R_SYM( CurrentRela.r_info)]); in ELi_RelocateSym()
516 … ELi_GetStrAdr( elElfDesc, SymShdr->sh_link, CurrentSymEx->Sym.st_name, sym_str, 128); in ELi_RelocateSym()
517 CurrentAdrEntry = elGetAdrEntry( elElfDesc, sym_str, &ExpObjEnt); in ELi_RelocateSym()
521 UnresolvedInfo.sym_str = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_RelocateSym()
534 UnrEnt = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_RelocateSym()
545 … CurrentShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, CurrentSymEx->Sym.st_shndx); in ELi_RelocateSym()
561 UnrEnt = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_RelocateSym()
571 if( ELi_DoRelocate( elElfDesc, MYObject, &UnresolvedInfo) == FALSE) { in ELi_RelocateSym()
587 ELi_SetProcCode( elElfDesc, NULL, EL_PROC_RELOCATED); in ELi_RelocateSym()
607 BOOL ELi_GoPublicGlobalSym( ELDesc* elElfDesc, ELObject* MYObject, u32 symtblsh_index) in ELi_GoPublicGlobalSym() argument
618 ELi_GetShdr( elElfDesc, symtblsh_index, &SymShdr); in ELi_GoPublicGlobalSym()
621 if(ELi_BuildSymList( elElfDesc, symtblsh_index) == FALSE) in ELi_GoPublicGlobalSym()
625 …CurrentSymEx = elElfDesc->SymEx; //If traceable not from Tbl but from here, debug information is n… in ELi_GoPublicGlobalSym()
633 … ExportAdrEntry = ELi_Malloc( elElfDesc, MYObject, sizeof(ELAdrEntry)); /*Memory allocation*/ in ELi_GoPublicGlobalSym()
638 ELi_GetStrAdr( elElfDesc, SymShdr.sh_link, CurrentSymEx->Sym.st_name, sym_str, 128); in ELi_GoPublicGlobalSym()
640 ExportAdrEntry->name = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_GoPublicGlobalSym()
645 CurrentShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, CurrentSymEx->Sym.st_shndx); in ELi_GoPublicGlobalSym()
651 … if( elGetAdrEntry( elElfDesc, ExportAdrEntry->name, &DmyObjEnt) == NULL) { //If not in in ELi_GoPublicGlobalSym()
670 static BOOL ELi_BuildSymList( ELDesc* elElfDesc, u32 symsh_index) in ELi_BuildSymList() argument
681 if( elElfDesc->SymExTarget == symsh_index) { in ELi_BuildSymList()
685 ELi_FreeSymList( elElfDesc); /*Deallocate the symbol list*/ in ELi_BuildSymList()
691 ELi_GetShdr( elElfDesc, symsh_index, &(elElfDesc->SymShdr)); in ELi_BuildSymList()
692 SymShdr = &(elElfDesc->SymShdr); in ELi_BuildSymList()
695 elElfDesc->SymExTbl = ELi_Malloc( elElfDesc, NULL, num_of_sym * 4); in ELi_BuildSymList()
696 if(elElfDesc->SymExTbl == NULL) in ELi_BuildSymList()
703 ELi_GetEntry( elElfDesc, (Elf32_Shdr*)SymShdr, i, &TestSym); in ELi_BuildSymList()
705 CurrentShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, TestSym.st_shndx); in ELi_BuildSymList()
713 elElfDesc->SymExTbl[i] = NULL; in ELi_BuildSymList()
715 CurrentSymEx->next = ELi_Malloc( elElfDesc, NULL, sizeof(ELSymEx)); in ELi_BuildSymList()
722 elElfDesc->SymExTbl[i] = CurrentSymEx; in ELi_BuildSymList()
729 elElfDesc->SymEx = DmySymEx.next; in ELi_BuildSymList()
734 CurrentSymEx = elElfDesc->SymEx; in ELi_BuildSymList()
738 CurrentSymEx->thumb_flag = (u16)(ELi_CodeIsThumb( elElfDesc, in ELi_BuildSymList()
750 elElfDesc->SymExTarget = symsh_index; in ELi_BuildSymList()
759 void ELi_FreeSymList( ELDesc* elElfDesc) in ELi_FreeSymList() argument
765 if( elElfDesc->SymExTbl != NULL) { in ELi_FreeSymList()
766 OSAPI_FREE( elElfDesc->SymExTbl); in ELi_FreeSymList()
767 elElfDesc->SymExTbl = NULL; in ELi_FreeSymList()
771 CurrentSymEx = elElfDesc->SymEx; in ELi_FreeSymList()
778 elElfDesc->SymEx = NULL; in ELi_FreeSymList()
782 elElfDesc->SymExTarget = 0xFFFFFFFF; in ELi_FreeSymList()
795 BOOL ELi_DoRelocate( ELDesc* elElfDesc, ELObject* MYObject, ELImportEntry* UnresolvedInfo) argument
815 if( (elElfDesc == i_eldesc_sim)&&(_S_ == 0)) {
827 _S_ = (u32)ELi_CopyVeneerToBuffer( elElfDesc,
836 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
849 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
857 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
865 if( (elElfDesc == i_eldesc_sim)&&(_S_ == 0)) {
877 _S_ = (u32)ELi_CopyVeneerToBuffer( elElfDesc,
886 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
898 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
910 if( (elElfDesc == i_eldesc_sim)&&(_S_ == 0)) {
918 _S_ = (u32)ELi_CopyVeneerToBuffer( elElfDesc,
931 _S_ = (u32)ELi_CopyV4tVeneerToBuffer( elElfDesc,
942 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
966 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_UNSUPPORTED_ELF);
1038 BOOL ELi_ShdrIsDebug( ELDesc* elElfDesc, u32 index) argument
1044 ELi_GetShdr( elElfDesc, index, &TmpShdr);
1045 ELi_GetStrAdr( elElfDesc, elElfDesc->CurrentEhdr.e_shstrndx,
1053 if( ELi_ShdrIsDebug( elElfDesc, TmpShdr.sh_info) == TRUE) {
1072 u32 ELi_CodeIsThumb( ELDesc* elElfDesc, u16 sh_index, u32 offset) argument
1081 SymShdr = &(elElfDesc->SymShdr);
1082 CurrentSymEx = elElfDesc->SymEx;
1089 ELi_GetStrAdr( elElfDesc, SymShdr->sh_link, CurrentSymEx->Sym.st_name, str_adr, 3);
1270 void* ELi_FreeVenTbl( ELDesc* elElfDesc, ELObject* MYObject) argument
1280 …ER_INFO( ISTDRELOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, FwdVenEnt->adr, (elElfDesc != i_eldesc_sim)…
1291 …ER_INFO( ISTDRELOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, FwdVenEnt->adr, (elElfDesc != i_eldesc_sim)…