Elf64_Addr la_x86_64_gnu_pltenter(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook, uintptr_t *defcook, La_x86_64_regs *regs, unsigned int *flags, const char *symname, long int *framesizep) { struct link_map *map = get_linkmap_from_cookie(refcook); unsigned long reloc_index = *((unsigned long *) (regs->lr_rsp-8)); Elf64_Addr target = client_call_binding(symname, sym->st_value); return doPermanentBinding(map, reloc_index, target); }
unsigned int spindle_la_objclose(uintptr_t *cookie) { struct link_map *map = get_linkmap_from_cookie(cookie); remove_library_from_plt_update_list(map); return 0; }