diff options
Diffstat (limited to 'ltrace-elf.c')
-rw-r--r-- | ltrace-elf.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ltrace-elf.c b/ltrace-elf.c index d9dac5e..b2e6e07 100644 --- a/ltrace-elf.c +++ b/ltrace-elf.c @@ -244,6 +244,24 @@ DEF_READER(elf_read_u64, 64) #undef DEF_READER +#define DEF_READER(NAME, SIZE) \ + int \ + NAME(Elf_Data *data, GElf_Xword *offset, uint##SIZE##_t *retp) \ + { \ + int rc = elf_read_u##SIZE(data, *offset, retp); \ + if (rc < 0) \ + return rc; \ + *offset += SIZE / 8; \ + return 0; \ + } + +DEF_READER(elf_read_next_u8, 8) +DEF_READER(elf_read_next_u16, 16) +DEF_READER(elf_read_next_u32, 32) +DEF_READER(elf_read_next_u64, 64) + +#undef DEF_READER + int open_elf(struct ltelf *lte, const char *filename) { |