aboutsummaryrefslogtreecommitdiff
path: root/ltrace-elf.h
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2013-02-05 01:50:28 +0100
committerPetr Machata <pmachata@redhat.com>2013-03-12 00:08:53 +0100
commit439ab5bfac8588e52c77e22c96fb397787512d0e (patch)
tree4368dd1e960d356c816f106bee25c2870a541108 /ltrace-elf.h
parent3c636fb789a29cac0c8f7f0982fb17afeee489dc (diff)
downloadltrace-439ab5bfac8588e52c77e22c96fb397787512d0e.tar.gz
Add elf_read_next_u*
For stream-like reading of ELF data.
Diffstat (limited to 'ltrace-elf.h')
-rw-r--r--ltrace-elf.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/ltrace-elf.h b/ltrace-elf.h
index a50ad8a..a520e63 100644
--- a/ltrace-elf.h
+++ b/ltrace-elf.h
@@ -116,6 +116,13 @@ int elf_read_u16(Elf_Data *data, GElf_Xword offset, uint16_t *retp);
int elf_read_u32(Elf_Data *data, GElf_Xword offset, uint32_t *retp);
int elf_read_u64(Elf_Data *data, GElf_Xword offset, uint64_t *retp);
+/* These are same as above, but update *OFFSET with the width
+ * of read datum. */
+int elf_read_next_u8(Elf_Data *data, GElf_Xword *offset, uint8_t *retp);
+int elf_read_next_u16(Elf_Data *data, GElf_Xword *offset, uint16_t *retp);
+int elf_read_next_u32(Elf_Data *data, GElf_Xword *offset, uint32_t *retp);
+int elf_read_next_u64(Elf_Data *data, GElf_Xword *offset, uint64_t *retp);
+
#if __WORDSIZE == 32
#define PRI_ELF_ADDR PRIx32
#define GELF_ADDR_CAST(x) (void *)(uint32_t)(x)