diff options
Diffstat (limited to 'usr.sbin/kldxref/ef_sparc64.c')
-rw-r--r-- | usr.sbin/kldxref/ef_sparc64.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/kldxref/ef_sparc64.c b/usr.sbin/kldxref/ef_sparc64.c index bc728a4..78b40db 100644 --- a/usr.sbin/kldxref/ef_sparc64.c +++ b/usr.sbin/kldxref/ef_sparc64.c @@ -38,12 +38,15 @@ * Apply relocations to the values we got from the file. */ int -ef_reloc(elf_file_t ef, Elf_Off offset, size_t len, void *dest) +ef_reloc(struct elf_file *ef, const void *data, int type, Elf_Off offset, + size_t len, void *dest) { const Elf_Rela *a; Elf_Word w; - for (a = ef->ef_rela; a < &ef->ef_rela[ef->ef_relasz]; a++) { + switch (type) { + case EF_RELOC_RELA: + a = data; if (a->r_offset >= offset && a->r_offset < offset + len) { switch (ELF_R_TYPE(a->r_info)) { case R_SPARC_RELATIVE: @@ -58,6 +61,7 @@ ef_reloc(elf_file_t ef, Elf_Off offset, size_t len, void *dest) break; } } + break; } return (0); } |