summaryrefslogtreecommitdiffstats
path: root/usr.sbin/kldxref/ef_sparc64.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/kldxref/ef_sparc64.c')
-rw-r--r--usr.sbin/kldxref/ef_sparc64.c8
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);
}
OpenPOWER on IntegriCloud