+2009-04-28 Petr Machata <pmachata@redhat.com>
+
+ * libdwP.h (__libdw_read_length_inc, __libdw_read_length):
+ New internal functions.
+ * dwarf_readhooks.c: Implement the above.
+
2009-04-23 Petr Machata <pmachata@redhat.com>
* dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
int width, Dwarf_Off *val)
internal_function;
+int __libdw_relocate_length (Dwarf *dbg,
+ int sec_index, uintptr_t addr,
+ int width, Dwarf_Addr *val)
+ internal_function;
+
#define READ_AND_RELOCATE(RELOC_HOOK) \
{ \
int status; \
READ_AND_RELOCATE (__libdw_relocate_offset)
}
+static inline int
+__libdw_read_length_inc (Dwarf *dbg,
+ int sec_index, unsigned char **addr,
+ int width, Dwarf_Addr *ret)
+{
+ READ_AND_RELOCATE (__libdw_relocate_length)
+}
+
#undef READ_AND_RELOCATE
static inline int
width, ret);
}
+static inline int
+__libdw_read_length (Dwarf *dbg,
+ int sec_index, const unsigned char *addr,
+ int width, Dwarf_Word *ret)
+{
+ return __libdw_read_length_inc (dbg, sec_index, (unsigned char **)&addr,
+ width, ret);
+}
+
#define ADDR_ESCAPE(width) \
(width == 8 ? (Elf64_Addr)-1 : (Elf64_Addr)(Elf32_Addr)-1)
{
return 0;
}
+
+internal_function int
+__libdw_relocate_length (Dwarf *dbg __attribute__ ((unused)),
+ int sec_index __attribute__ ((unused)),
+ uintptr_t addr __attribute__ ((unused)),
+ int width __attribute__ ((unused)),
+ Dwarf_Addr *val __attribute__ ((unused)))
+{
+ return 0;
+}