aboutsummaryrefslogtreecommitdiff
path: root/library.h
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2012-04-30 21:01:40 +0200
committerPetr Machata <pmachata@redhat.com>2012-04-30 21:01:40 +0200
commitb1492dfaca6882fa0798b549e0557c7dec6b7e9c (patch)
tree5b54adaa74523f6ed216d61a2e21061f60e81482 /library.h
parent5b3e26acd50d74e8b7c007f8b5dfb1a825ef9aff (diff)
downloadltrace-b1492dfaca6882fa0798b549e0557c7dec6b7e9c.tar.gz
Split arch_translate_address into this and arch_translate_address_dyn
The former is called when ltelf is available. The latter in dynamic context when ltelf is not necessary anymore (or if the data is necessary, it will have been copied out to struct library).
Diffstat (limited to 'library.h')
-rw-r--r--library.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/library.h b/library.h
index 3122e36..c387b02 100644
--- a/library.h
+++ b/library.h
@@ -181,11 +181,16 @@ enum callback_status library_with_key_cb(struct Process *proc,
* target_address_t (which should also be in backend.h, I reckon), so
* stuff it here for the time being. */
/* This function is implemented in the back end. It is called for all
- * raw addresses as gleaned from symbol tables etc. If necessary on
+ * raw addresses as read from symbol tables etc. If necessary on
* given architecture, this function should translate the address
* according to .opd or other indirection mechanism. Returns 0 on
* success and a negative value on failure. */
-int arch_translate_address(struct Process *proc,
+struct ltelf;
+int arch_translate_address(struct ltelf *lte,
target_address_t addr, target_address_t *ret);
+/* This is the same function as arch_translate_address, except it's
+ * used at the point that we don't have ELF available anymore. */
+int arch_translate_address_dyn(struct Process *proc,
+ target_address_t addr, target_address_t *ret);
#endif /* _LIBRARY_H_ */