Lines Matching refs:elElfDesc

45 extern ELAdrEntry* elGetAdrEntry( ELDesc* elElfDesc, const char* ent_name, ELObject** ExpObjEnt);
70 static BOOL ELi_CheckBufRest( ELDesc* elElfDesc, ELObject* MYObject, void* start, u32 size);
72 static BOOL ELi_BuildSymList( ELDesc* elElfDesc, u32 symsh_index);
149 static BOOL ELi_CheckBufRest( ELDesc* elElfDesc, ELObject* MYObject, void* start, u32 size) in ELi_CheckBufRest() argument
152 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_NO_MORE_RESOURCE); in ELi_CheckBufRest()
165 void* ELi_CopyVeneerToBuffer( ELDesc* elElfDesc, ELObject* MYObject, u32 start, u32 data, s32 thres… in ELi_CopyVeneerToBuffer() argument
167 #pragma unused(elElfDesc) in ELi_CopyVeneerToBuffer()
173 if( (elElfDesc == i_eldesc_sim)&&(data == 0)) { in ELi_CopyVeneerToBuffer()
195 if( ELi_CheckBufRest( elElfDesc, MYObject, (void*)load_start, sh_size) == FALSE) { in ELi_CopyVeneerToBuffer()
199 if( elElfDesc != i_eldesc_sim) { in ELi_CopyVeneerToBuffer()
210 elVenEnt = ELi_Malloc( elElfDesc, MYObject, sizeof( ELVeneer)); in ELi_CopyVeneerToBuffer()
216 …LOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, elVenEnt->adr, elVenEnt->data, (elElfDesc != i_eldesc_sim)… in ELi_CopyVeneerToBuffer()
230 void* ELi_CopyV4tVeneerToBuffer( ELDesc* elElfDesc, ELObject* MYObject, u32 start, u32 data, s32 th… in ELi_CopyV4tVeneerToBuffer() argument
232 #pragma unused(elElfDesc) in ELi_CopyV4tVeneerToBuffer()
238 if( (elElfDesc == i_eldesc_sim)&&(data == 0)) { in ELi_CopyV4tVeneerToBuffer()
259 if( ELi_CheckBufRest( elElfDesc, MYObject, (void*)load_start, sh_size) == FALSE) { in ELi_CopyV4tVeneerToBuffer()
263 if( elElfDesc != i_eldesc_sim) { in ELi_CopyV4tVeneerToBuffer()
274 elVenEnt = ELi_Malloc( elElfDesc, MYObject, sizeof( ELVeneer)); in ELi_CopyV4tVeneerToBuffer()
280 …LOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, elVenEnt->adr, elVenEnt->data, (elElfDesc != i_eldesc_sim)… in ELi_CopyV4tVeneerToBuffer()
291 void* ELi_CopySegmentToBuffer( ELDesc* elElfDesc, ELObject* MYObject, Elf32_Phdr* Phdr) in ELi_CopySegmentToBuffer() argument
297 if( elElfDesc != i_eldesc_sim) { in ELi_CopySegmentToBuffer()
299 if( elElfDesc->i_elReadStub( (void*)load_start, in ELi_CopySegmentToBuffer()
300 elElfDesc->FileStruct, in ELi_CopySegmentToBuffer()
301 (u32)(elElfDesc->ar_head), in ELi_CopySegmentToBuffer()
302 (u32)(elElfDesc->elf_offset)+(u32)(Phdr->p_offset), in ELi_CopySegmentToBuffer()
305 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_CANNOT_ACCESS_ELF); in ELi_CopySegmentToBuffer()
316 void* ELi_CopySectionToBuffer( ELDesc* elElfDesc, ELObject* MYObject, Elf32_Shdr* Shdr) in ELi_CopySectionToBuffer() argument
327 if( ELi_CheckBufRest( elElfDesc, MYObject, (void*)load_start, sh_size) == FALSE) { in ELi_CopySectionToBuffer()
331 if( elElfDesc != i_eldesc_sim) { in ELi_CopySectionToBuffer()
333 if( elElfDesc->i_elReadStub( (void*)load_start, in ELi_CopySectionToBuffer()
334 elElfDesc->FileStruct, in ELi_CopySectionToBuffer()
335 (u32)(elElfDesc->ar_head), in ELi_CopySectionToBuffer()
336 (u32)(elElfDesc->elf_offset)+(u32)(Shdr->sh_offset), in ELi_CopySectionToBuffer()
339 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_CANNOT_ACCESS_ELF); in ELi_CopySectionToBuffer()
355 void* ELi_AllocSectionToBuffer( ELDesc* elElfDesc, ELObject* MYObject, Elf32_Shdr* Shdr) in ELi_AllocSectionToBuffer() argument
357 #pragma unused(elElfDesc) in ELi_AllocSectionToBuffer()
367 if( ELi_CheckBufRest( elElfDesc, MYObject, (void*)load_start, sh_size) == FALSE) { in ELi_AllocSectionToBuffer()
385 void ELi_GetPhdr( ELDesc* elElfDesc, u32 index, Elf32_Phdr* Phdr) in ELi_GetPhdr() argument
389 offset = (elElfDesc->CurrentEhdr.e_phoff) + in ELi_GetPhdr()
390 ((u32)(elElfDesc->CurrentEhdr.e_phentsize) * index); in ELi_GetPhdr()
392 (void)elElfDesc->i_elReadStub( Phdr, in ELi_GetPhdr()
393 elElfDesc->FileStruct, in ELi_GetPhdr()
394 (u32)(elElfDesc->ar_head), in ELi_GetPhdr()
395 (u32)(elElfDesc->elf_offset) + offset, in ELi_GetPhdr()
402 void ELi_GetShdr( ELDesc* elElfDesc, u32 index, Elf32_Shdr* Shdr) in ELi_GetShdr() argument
406 offset = (elElfDesc->CurrentEhdr.e_shoff) + ((u32)(elElfDesc->shentsize) * index); in ELi_GetShdr()
408 (void)elElfDesc->i_elReadStub( Shdr, in ELi_GetShdr()
409 elElfDesc->FileStruct, in ELi_GetShdr()
410 (u32)(elElfDesc->ar_head), in ELi_GetShdr()
411 (u32)(elElfDesc->elf_offset) + offset, in ELi_GetShdr()
418 void ELi_GetSent( ELDesc* elElfDesc, u32 index, void* entry_buf, u32 offset, u32 size) in ELi_GetSent() argument
422 ELi_GetShdr( elElfDesc, index, &Shdr); in ELi_GetSent()
424 (void)elElfDesc->i_elReadStub( entry_buf, in ELi_GetSent()
425 elElfDesc->FileStruct, in ELi_GetSent()
426 (u32)(elElfDesc->ar_head), in ELi_GetSent()
427 (u32)(elElfDesc->elf_offset) + (u32)(Shdr.sh_offset) + offset, in ELi_GetSent()
438 void ELi_GetEntry( ELDesc* elElfDesc, Elf32_Shdr* Shdr, u32 index, void* entry_buf) in ELi_GetEntry() argument
444 (void)elElfDesc->i_elReadStub( entry_buf, in ELi_GetEntry()
445 elElfDesc->FileStruct, in ELi_GetEntry()
446 (u32)(elElfDesc->ar_head), in ELi_GetEntry()
447 (u32)(elElfDesc->elf_offset) + offset, in ELi_GetEntry()
457 void ELi_GetStrAdr( ELDesc* elElfDesc, u32 strsh_index, u32 ent_index, char* str, u32 len) in ELi_GetStrAdr() argument
460 ELi_GetSent( elElfDesc, strsh_index, str, ent_index, len); in ELi_GetStrAdr()
486 BOOL ELi_RelocateSym( ELDesc* elElfDesc, ELObject* MYObject, u32 relsh_index) in ELi_RelocateSym() argument
508 ELi_GetShdr( elElfDesc, relsh_index, &RelOrRelaShdr); in ELi_RelocateSym()
511 TargetShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, RelOrRelaShdr.sh_info); in ELi_RelocateSym()
516 if(ELi_BuildSymList( elElfDesc, RelOrRelaShdr.sh_link) == FALSE) in ELi_RelocateSym()
519 SymShdr = &(elElfDesc->SymShdr); in ELi_RelocateSym()
527 ELi_GetEntry( elElfDesc, &RelOrRelaShdr, i, &CurrentRela); in ELi_RelocateSym()
535 CurrentSymEx = (ELSymEx*)(elElfDesc->SymExTbl[ELF32_R_SYM( CurrentRela.r_info)]); in ELi_RelocateSym()
552 … ELi_GetStrAdr( elElfDesc, SymShdr->sh_link, CurrentSymEx->Sym.st_name, sym_str, 128); in ELi_RelocateSym()
553 CurrentAdrEntry = elGetAdrEntry( elElfDesc, sym_str, &ExpObjEnt); in ELi_RelocateSym()
557 UnresolvedInfo.sym_str = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_RelocateSym()
570 UnrEnt = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_RelocateSym()
581 … CurrentShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, CurrentSymEx->Sym.st_shndx); in ELi_RelocateSym()
597 UnrEnt = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_RelocateSym()
607 if( ELi_DoRelocate( elElfDesc, MYObject, &UnresolvedInfo) == FALSE) { in ELi_RelocateSym()
623 ELi_SetProcCode( elElfDesc, NULL, EL_PROC_RELOCATED); in ELi_RelocateSym()
643 BOOL ELi_GoPublicGlobalSym( ELDesc* elElfDesc, ELObject* MYObject, u32 symtblsh_index) in ELi_GoPublicGlobalSym() argument
654 ELi_GetShdr( elElfDesc, symtblsh_index, &SymShdr); in ELi_GoPublicGlobalSym()
657 if(ELi_BuildSymList( elElfDesc, symtblsh_index) == FALSE) in ELi_GoPublicGlobalSym()
661 …CurrentSymEx = elElfDesc->SymEx; //If traceable not from Tbl but from here, debug information is n… in ELi_GoPublicGlobalSym()
669 … ExportAdrEntry = ELi_Malloc( elElfDesc, MYObject, sizeof(ELAdrEntry)); /*Memory allocation*/ in ELi_GoPublicGlobalSym()
674 ELi_GetStrAdr( elElfDesc, SymShdr.sh_link, CurrentSymEx->Sym.st_name, sym_str, 128); in ELi_GoPublicGlobalSym()
676 ExportAdrEntry->name = ELi_Malloc( elElfDesc, MYObject, copy_size); in ELi_GoPublicGlobalSym()
681 CurrentShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, CurrentSymEx->Sym.st_shndx); in ELi_GoPublicGlobalSym()
687 … if( elGetAdrEntry( elElfDesc, ExportAdrEntry->name, &DmyObjEnt) == NULL) { //If not in in ELi_GoPublicGlobalSym()
706 static BOOL ELi_BuildSymList( ELDesc* elElfDesc, u32 symsh_index) in ELi_BuildSymList() argument
717 if( elElfDesc->SymExTarget == symsh_index) { in ELi_BuildSymList()
721 ELi_FreeSymList( elElfDesc); /*Deallocate the symbol list*/ in ELi_BuildSymList()
727 ELi_GetShdr( elElfDesc, symsh_index, &(elElfDesc->SymShdr)); in ELi_BuildSymList()
728 SymShdr = &(elElfDesc->SymShdr); in ELi_BuildSymList()
731 elElfDesc->SymExTbl = ELi_Malloc( elElfDesc, NULL, num_of_sym * 4); in ELi_BuildSymList()
732 if(elElfDesc->SymExTbl == NULL) in ELi_BuildSymList()
739 ELi_GetEntry( elElfDesc, (Elf32_Shdr*)SymShdr, i, &TestSym); in ELi_BuildSymList()
741 CurrentShdrEx = ELi_GetShdrExfromList( elElfDesc->ShdrEx, TestSym.st_shndx); in ELi_BuildSymList()
749 elElfDesc->SymExTbl[i] = NULL; in ELi_BuildSymList()
751 CurrentSymEx->next = ELi_Malloc( elElfDesc, NULL, sizeof(ELSymEx)); in ELi_BuildSymList()
758 elElfDesc->SymExTbl[i] = CurrentSymEx; in ELi_BuildSymList()
765 elElfDesc->SymEx = DmySymEx.next; in ELi_BuildSymList()
770 CurrentSymEx = elElfDesc->SymEx; in ELi_BuildSymList()
774 CurrentSymEx->thumb_flag = (u16)(ELi_CodeIsThumb( elElfDesc, in ELi_BuildSymList()
786 elElfDesc->SymExTarget = symsh_index; in ELi_BuildSymList()
795 void ELi_FreeSymList( ELDesc* elElfDesc) in ELi_FreeSymList() argument
801 if( elElfDesc->SymExTbl != NULL) { in ELi_FreeSymList()
802 OSAPI_FREE( elElfDesc->SymExTbl); in ELi_FreeSymList()
803 elElfDesc->SymExTbl = NULL; in ELi_FreeSymList()
807 CurrentSymEx = elElfDesc->SymEx; in ELi_FreeSymList()
814 elElfDesc->SymEx = NULL; in ELi_FreeSymList()
818 elElfDesc->SymExTarget = 0xFFFFFFFF; in ELi_FreeSymList()
831 BOOL ELi_DoRelocate( ELDesc* elElfDesc, ELObject* MYObject, ELImportEntry* UnresolvedInfo) argument
851 if( (elElfDesc == i_eldesc_sim)&&(_S_ == 0)) {
863 _S_ = (u32)ELi_CopyVeneerToBuffer( elElfDesc,
872 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
885 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
893 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
901 if( (elElfDesc == i_eldesc_sim)&&(_S_ == 0)) {
913 _S_ = (u32)ELi_CopyVeneerToBuffer( elElfDesc,
922 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
934 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
946 if( (elElfDesc == i_eldesc_sim)&&(_S_ == 0)) {
954 _S_ = (u32)ELi_CopyVeneerToBuffer( elElfDesc,
967 _S_ = (u32)ELi_CopyV4tVeneerToBuffer( elElfDesc,
978 if( elElfDesc == i_eldesc_sim) { //Do not actually redefine the symbol at simulation
1002 ELi_SetResultCode( elElfDesc, MYObject, EL_RESULT_UNSUPPORTED_ELF);
1074 BOOL ELi_ShdrIsDebug( ELDesc* elElfDesc, u32 index) argument
1080 ELi_GetShdr( elElfDesc, index, &TmpShdr);
1081 ELi_GetStrAdr( elElfDesc, elElfDesc->CurrentEhdr.e_shstrndx,
1089 if( ELi_ShdrIsDebug( elElfDesc, TmpShdr.sh_info) == TRUE) {
1108 u32 ELi_CodeIsThumb( ELDesc* elElfDesc, u16 sh_index, u32 offset) argument
1117 SymShdr = &(elElfDesc->SymShdr);
1118 CurrentSymEx = elElfDesc->SymEx;
1125 ELi_GetStrAdr( elElfDesc, SymShdr->sh_link, CurrentSymEx->Sym.st_name, str_adr, 3);
1306 void* ELi_FreeVenTbl( ELDesc* elElfDesc, ELObject* MYObject) argument
1316 …ER_INFO( ISTDRELOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, FwdVenEnt->adr, (elElfDesc != i_eldesc_sim)…
1327 …ER_INFO( ISTDRELOCATIONPROC_AUTO, ISTDVENEERTYPE_AUTO, FwdVenEnt->adr, (elElfDesc != i_eldesc_sim)…