plt.c revision 9a2ad351a1c3215dc596ff3e2e3fd4bc24445a6b
1d914a206a11cc1011a45f00674b1e16988fae77fJuan Cespedes#include <gelf.h> 2d914a206a11cc1011a45f00674b1e16988fae77fJuan Cespedes#include "ltrace.h" 3d914a206a11cc1011a45f00674b1e16988fae77fJuan Cespedes#include "elf.h" 4d914a206a11cc1011a45f00674b1e16988fae77fJuan Cespedes 59a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan WienandGElf_Addr 69a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienandarch_plt_sym_val (struct ltelf *lte, size_t ndx, GElf_Rela *rela) 7d914a206a11cc1011a45f00674b1e16988fae77fJuan Cespedes{ 89a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienand return lte->plt_addr + ndx * 12 + 32; 99a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienand} 109a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienand 119a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienandvoid * plt2addr(struct process *proc, void ** plt) 129a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienand{ 139a2ad351a1c3215dc596ff3e2e3fd4bc24445a6bIan Wienand return (void *) plt; 14d914a206a11cc1011a45f00674b1e16988fae77fJuan Cespedes} 15