aboutsummaryrefslogtreecommitdiff
path: root/fetch.h
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2012-09-22 15:24:06 +0200
committerPetr Machata <pmachata@redhat.com>2012-09-22 15:28:56 +0200
commit311358a1cac22781ecffe697a808bd43eac73bce (patch)
tree55687fd44a09aaf4428abb22fac2bee10e2f3288 /fetch.h
parent53ae73b27227eeb12d7a6fb3cb7721fe9378092e (diff)
downloadltrace-311358a1cac22781ecffe697a808bd43eac73bce.tar.gz
Add more details to description of some backend.h declarations
arch_plt_sym_val was moved from ltrace-elf.h. arch_fetch_* was declared in fetch.h. It uses enum tof, and it doesn't feel right to pull this enum to backend. Instead leave arch_fetch_* callbacks in fetch.h, and reference them in a comment in backend.h.
Diffstat (limited to 'fetch.h')
-rw-r--r--fetch.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/fetch.h b/fetch.h
index eeeef92..2a13214 100644
--- a/fetch.h
+++ b/fetch.h
@@ -70,4 +70,26 @@ int fetch_param_pack_start(struct fetch_context *context,
/* Called after a parameter pack has been fetched. */
void fetch_param_pack_end(struct fetch_context *context);
+
+/* The following callbacks have to be implemented in backend if arch.h
+ * defines ARCH_HAVE_FETCH_ARG. These backend callbacks correspond to
+ * above functions. */
+struct fetch_context *arch_fetch_arg_init(enum tof type, struct Process *proc,
+ struct arg_type_info *ret_info);
+struct fetch_context *arch_fetch_arg_clone(struct Process *proc,
+ struct fetch_context *context);
+int arch_fetch_arg_next(struct fetch_context *ctx, enum tof type,
+ struct Process *proc, struct arg_type_info *info,
+ struct value *valuep);
+int arch_fetch_retval(struct fetch_context *ctx, enum tof type,
+ struct Process *proc, struct arg_type_info *info,
+ struct value *valuep);
+void arch_fetch_arg_done(struct fetch_context *context);
+
+/* The following callbacks have to be implemented in backend if arch.h
+ * defines ARCH_HAVE_FETCH_ARG and ARCH_HAVE_FETCH_PACK. */
+int arch_fetch_param_pack_start(struct fetch_context *context,
+ enum param_pack_flavor ppflavor);
+void arch_fetch_param_pack_end(struct fetch_context *context);
+
#endif /* FETCH_H */